iOS:为啥不显示导航栏?

Posted

技术标签:

【中文标题】iOS:为啥不显示导航栏?【英文标题】:iOS: Why is the navigation bar not shown?iOS:为什么不显示导航栏? 【发布时间】:2015-06-24 16:16:22 【问题描述】:

我的应用程序将启动到登录视图或主菜单,具体取决于用户是否在之前的会话中登录。这就是我以编程方式定义“初始视图控制器”的原因。

登录场景是导航控制器的根视图控制器,用户可以从那里选择注册或登录。

问题是,如果使用以下代码,实际上显示了登录视图,但是缺少导航栏......有什么想法我做错了什么吗?如果我将 Interface-Builder 中的登录场景声明为“初始视图控制器”,一切正常,但我确实需要以编程方式显示视图。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    self.window.rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"LoginScene"];

【问题讨论】:

【参考方案1】:

如果 LoginScene 是导航控制器的根视图控制器,那么如果我理解正确,您应该将导航控制器设置为窗口的根:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    self.window.rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"LoginNavController"];

【讨论】:

以上是关于iOS:为啥不显示导航栏?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 wkwebview 隐藏在导航栏下

UISplitViewController:为啥我不应该在导航或标签栏界面中显示它?

关于iOS导航控制器隐藏和显示会出现返回键失效,导航栏标题动画异常

为啥ios中的状态栏和导航栏背景颜色不同

iOS解决隐藏导航栏后,打开照片选择器后导航栏不显示的问题以及更换导航栏背景色

# iOS导航栏控制Tips