presentViewController 不显示标签栏或导航栏

Posted

技术标签:

【中文标题】presentViewController 不显示标签栏或导航栏【英文标题】:presentViewController does not show Tab Bar or Navigation Bar 【发布时间】:2015-04-05 01:07:11 【问题描述】:

我是 Swift 新手,为此苦苦挣扎了一段时间。

我正在尝试根据登录状态将用户重定向到“登录”视图控制器或“主页”视图控制器。

“主页”视图控制器有 NavigationBar 和 TabBar,它显示一个表格。但是,当我使用以下代码时,我只看到表格。 NavigationBar 和 TabBar 根本不显示。

var view = self.storyboard?.instantiateViewControllerWithIdentifier("HomeViewController") as UIViewController
self.presentViewController(view, animated: true, completion: nil)

这是我的故事板:https://www.dropbox.com/s/dkcz45n8000gua6/storyboard.png?dl=0

任何帮助将不胜感激!

编辑(使用 TabBarController):

var view = self.storyboard?.instantiateViewControllerWithIdentifier("MainTabController") as UITabBarController
self.presentViewController(view, animated: true, completion: nil)

【问题讨论】:

【参考方案1】:

您的问题与 swift 新手无关;这与不了解故事板有关。如果您实例化 HomeViewController,并呈现它,那么您将得到的就是这些。它嵌入在故事板中的选项卡栏控制器和导航控制器中这一事实对于您刚刚实例化的这个裸控制器来说是不“知道的”。您应该实例化标签栏控制器,并呈现它。它将负责实例化它的任何孩子,导航控制器将负责实例化它的根视图控制器。

【讨论】:

我尝试提供 UITabBarController 故事板 ID“MainTabController”。但没有运气:(。dropbox.com/s/jc2dyxd4ng327mh/tabbarcontroller.png?dl=0 @Puru,“没有运气”是什么意思?它给了你什么结果? 我只看到没有标签栏或导航栏的表格 @Puru,那么你有没有实例化标签栏控制器并呈现它?编辑您的问题以显示您现在使用的代码。 我将“MainTabController”实例化为 UITabBarController。请查看更新。

以上是关于presentViewController 不显示标签栏或导航栏的主要内容,如果未能解决你的问题,请参考以下文章

presentViewController 不显示呈现视图控制器上的所有元素

iOS:presentViewController 错误 不鼓励在分离的视图控制器上显示视图控制器

xcode在presentViewController之后更改标签的文本

presentViewController 不工作

presentViewController 不存在

容器视图中的presentViewController