导航栏在第一个 运行 之后没有显示

Navigation bar didn't show after first run

我正在使用 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;
}

这是我在 HomeViewControllerviewDidLoad 中所做的:

- (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 作为我的 Class 用于我的 NavigationController
I认为我已经分享了足够多的内容来解释我的问题。让我知道是否需要更多信息。那么,我该怎么办呢?

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

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

编辑:

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