在AppDelegate中我检查是否存在用户,如果我通过使用此代码推送NavigationController而“跳过”两个ViewControllers:
if(currentUser){
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"Test"];
self.window.rootViewController = viewController;
viewController.navigationController.navigationBarHidden = NO; // Tried this nothing happened.
[self.window makeKeyAndVisible];
}
else{
[PFUser enableAutomaticUser];
[[PFUser currentUser] incrementKey:@"RunCount"];
[[PFUser currentUser] saveInBackground];
[[PFUser currentUser] fetch];
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"firstView"];
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
}
因此,true语句会跳过两个ViewControllers并推送UINavigationController。但当它以这种方式显示时,没有顶栏。
但是如果没有用户,则会通过segues以“正常”方式进入UINavigationController,然后条形图可见。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:2)
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main"
bundle:nil];
UIViewController *viewController = [storyboard
instantiateViewControllerWithIdentifier:@"Test"];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
self.window.rootViewController = nav;
答案 1 :(得分:0)
"所以真正的语句会跳过两个ViewControllers并推送UINavigationController。"不,它没有。首先,你没有推动任何东西,你要设置窗口的根视图控制器。其次,您还没有创建任何导航控制器,您只创建了viewController。
如果viewController在故事板中有一个导航控制器,那么你应该实例化导航控制器(它将反过来实例化viewController),并使其成为窗口的根视图控制器。
答案 2 :(得分:0)
我认为你应该将UINavigationController设置为rootviewController,会有一个导航栏。所以你也可以将firstView设置为rootViewController,但是设置viewcontrollers属性以放置在viewcontrollers之前清除的Test viewcontroller。