2015-10-07 78 views
0

我正在使用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
我想我已經分享了足夠的東西來解釋我的問題。讓我知道是否有更多的信息需要。那麼,我應該在這裏做什麼?

回答

0

正如我所看到的,您正在將您的UIViewController作爲rootController。但是,如果您想要看到頂部的導航欄,則需要實例化UINavigationController,並使用rootViewController(這是您的HomeViewController)初始化init。

注:你需要讓你的UINavigationController爲根視圖控制器,而不是你HomeViewController

編輯:

 HomeViewController *loginController= (HomeViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"HomeViewController"]; 
    CCKFNavDrawer *navController = (CCKFNavDrawer *)[[CCKFNavDrawer alloc]initWithRootViewController:loginController]; 
self.window.rootViewController=navController; 
+0

我試過,但它崩潰的應用程序。如果你可以看到我的'ViewDidLoad'方法,那麼就有一個名爲'setCCKFNavDrawerDelegate'的'Delegate',它將'HomeViewController'設置爲'rootNav'。其中'rootNav'是'CCKFNavDrawer'類的一個屬性。查看庫鏈接瞭解更多信息。應用程序崩潰與此錯誤:終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:' - [UINavigationController setCCKFNavDrawerDelegate:]:無法識別的選擇器發送到實例' –

+0

我會研究它! –

+0

我更新了我的答案,嘗試 –