2015-10-07 82 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

我更新了我的答案,尝试 –