将PKRevealController与Storyboard集成

埃迪

我希望集成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'

我究竟做错了什么?

威廉·乔治

艾迪

我遇到了类似的问题,并认为这是因为我的情节提要。但是仔细观察,即崩溃行是试图访问.revealControllerUIViewController

.revealController已通过类别上的实现UIViewController,我记得您必须添加链接器标志才能从静态库加载类别。

在安装说明中,它说要添加链接器标志-ObjC然后转到您的项目Build Settings并搜索Other Linker Flags然后添加-ObjC

由于使用了另一个库,因此我没有使用此标志,这意味着它正在尝试加载我不希望包含的其他库。为了解决这个问题,我专门要求它仅加载PKReveal库:

-force_load $(BUILT_PRODUCTS_DIR)/libPKRevealController.a

希望这会帮助别人,因为我花了一段时间:/

w ^

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章