首次运行后导航栏未显示

时间:2015-10-07 12:20:39

标签: ios objective-c uinavigationcontroller uinavigationbar

我正在使用this library在我的应用中实现菜单。如果我删除该应用并运行它,它会成功显示主页上的导航栏。但是如果我退出应用程序而没有注销并再次运行它就没有显示导航栏。
现在我理解NavigationController的结构如何是ViewControllers的堆栈。 br />
如果用户尚未退出帐户,以下是AppDelegate.m我正在HomeViewControllerRootViewController的内容。

- (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的{​​{1}}中所做的事情:

HomeViewController

同样正如library的演示中所提到的,我使用- (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; } 作为我CCKFNavDrawer的班级。
我想我已经分享了足够的内容解释我的问题。如果需要更多信息,请告诉我。那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

正如我所看到的,您正在将UIViewController作为rootController。但是如果你想在顶部看到导航栏,你需要使用rootViewController实例化UINavigationController和init,这是你的HomeViewController

注意:您需要将UINavigationController设为根视图控制器,而不是HomeViewController

修改

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