我正在使用this library在我的應用程序中實現菜單。如果我刪除該應用並運行它,它會成功顯示主頁上的導航欄。但是,如果我退出應用程序而不註銷並再次運行它,它不會顯示導航欄。
現在我明白了NavigationController
的結構,它是如何堆積ViewControllers
的。
以下是我在AppDelegate.m
中所做的操作,以便在我的HomeViewController
我的RootViewController
如果用戶尚未註銷帳戶。導航欄在第一次運行後沒有顯示
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
if([[NSUserDefaults standardUserDefaults]objectForKey:USERID] == nil)
{
NSLog(@"User is not logged in");
}
else
{
NSLog(@"User ID: %@",[[NSUserDefaults standardUserDefaults]objectForKey:USERID]);
HomeViewController *loginController= (HomeViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
self.window.rootViewController=loginController;
}
return YES;
}
和這裏是我在viewDidLoad
做我HomeViewController
:
- (void)viewDidLoad
{
[super viewDidLoad]; self.rootNav = (CCKFNavDrawer *)self.navigationController;
[self.rootNav setCCKFNavDrawerDelegate:self];
self.navigationController.navigationBarHidden=NO;
self.navigationItem.title = @"Recent Posts";
self.navigationItem.hidesBackButton = YES;
}
而且因爲它是在library的演示中提到我用CCKFNavDrawer
作爲我的班我NavigationController
。
我想我已經分享了足夠的東西來解釋我的問題。讓我知道是否有更多的信息需要。那麼,我應該在這裏做什麼?
我試過,但它崩潰的應用程序。如果你可以看到我的'ViewDidLoad'方法,那麼就有一個名爲'setCCKFNavDrawerDelegate'的'Delegate',它將'HomeViewController'設置爲'rootNav'。其中'rootNav'是'CCKFNavDrawer'類的一個屬性。查看庫鏈接瞭解更多信息。應用程序崩潰與此錯誤:終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:' - [UINavigationController setCCKFNavDrawerDelegate:]:無法識別的選擇器發送到實例' –
我會研究它! –
我更新了我的答案,嘗試 –