我希望集成PKRevealController并为我的应用程序提供整体滑动设置菜单。 我找不到任何有关故事板的教程。我已经有一个storyboad,它托管一个navigationcontroller(默认情况下是一个),带有一个指向rootviewcontroller的箭头(在我的案例中称为LoginViewController)。
根据PKRevealController的任何文档,我添加了一个单独的Viewcontroller场景,并使其类成为PKRevealController,然后在app delegate中执行此操作
@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'
我做错了什么?
答案 0 :(得分:1)
埃迪,
我遇到了类似的问题,并认为这是因为我的故事板。但仔细检查后,崩溃的线路正试图访问.revealController
上的UIViewController
.revealController
已通过UIViewController
上的类别实现,我记得在不添加链接器标志的情况下无法从静态库加载类别。
在安装说明中,它说添加链接器标记-ObjC
,为此请转到您的项目Build Settings
并搜索Other Linker Flags
,然后添加-ObjC
。
由于我使用的是另一个库,我没有使用此标志,这意味着它正在尝试加载我不希望包含的其他库。为了解决这个问题,我特意要求它只加载PKReveal库:
-force_load $(BUILT_PRODUCTS_DIR)/libPKRevealController.a
希望这会帮助别人,因为它花了我一段时间:/
w ^