我希望集成PKRevealController并为我的应用程序提供一个整体的滑动设置菜单。我找不到有关使用故事板进行此操作的任何教程。我已经有了一个故事板,其中包含一个导航控件(默认情况下带有该控件),并带有指向rootviewcontroller的箭头(在我的情况下称为LoginViewController)。
遵循PKRevealController的所有文档之后,我添加了一个单独的Viewcontroller场景并将其类设为PKRevealController,然后在应用程序委托中进行了此操作
@interface AhmAppDelegate() <PKRevealing>
@property (nonatomic, strong, readwrite) PKRevealController *revealController;
@end
@implementation AmAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions
{
self.revealController = (PKRevealController *)self.window.rootViewController;
self.window.rootViewController = self.revealController;
LoginViewController *frontViewController = [[UIStoryboard storyboardWithName:@"Mainview_iPad"
bundle:nil] instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.revealController setFrontViewController:frontViewController];//This throws the error
return YES;
}
运行此时,出现以下错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'-[UINavigationController setFrontViewController:]: unrecognized selector sent to instance
0xb17aec0'
我究竟做错了什么?
艾迪
我遇到了类似的问题,并认为这是因为我的情节提要。但是仔细观察,即崩溃行是试图访问.revealController
的UIViewController
.revealController
已通过类别上的实现UIViewController
,我记得您必须添加链接器标志才能从静态库加载类别。
在安装说明中,它说要添加链接器标志-ObjC
,然后转到您的项目Build Settings
并搜索Other Linker Flags
然后添加-ObjC
。
由于使用了另一个库,因此我没有使用此标志,这意味着它正在尝试加载我不希望包含的其他库。为了解决这个问题,我专门要求它仅加载PKReveal库:
-force_load $(BUILT_PRODUCTS_DIR)/libPKRevealController.a
希望这会帮助别人,因为我花了一段时间:/
w ^
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句