2013-10-28 113 views
3

我期待整合PKRevealController并为我的应用程序提供整体滑动设置菜单。 我找不到任何有关故事板的教程。我已经有一个故事板,它带有一个指向rootviewcontroller(在我的情况下称为LoginViewController)的箭头的navigationcontroller(默认出现的那个)。集成PKRevealController与故事板

以下为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' 

我在做什么错了?

回答

1

埃迪,

我得到了类似的问题,并认为这是因为我的故事板。但是仔细观察,即崩溃行正试图在UIViewController

.revealController访问.revealController已经通过类别上UIViewController实现,我记得你不能加载从静态库的类别不添加链接标志。

在安装说明中说它添加连接器标记-ObjC,这样做转到您的项目Build Settings并搜索Other Linker Flags然后添加-ObjC

由于我使用了另一个库,因此我没有使用该标志,这意味着它试图加载其他我不想包含的库。为了解决这个问题,我专门问它加载只PKReveal库:

-force_load $(BUILT_PRODUCTS_DIR)/libPKRevealController.a 

希望这将帮助其他人,因为它花了一段:/

W¯¯