嵌入式导航栏未在运行时显示。

时间:2015-09-28 15:49:46

标签: ios xcode swift uitableview uinavigationcontroller

我在我的UiTableViewController中嵌入了一个导航控制器,希望有一个导航栏。导航栏显示在故事板中,但在运行时它不显示。有没有其他人遇到这个问题,可以提供解决方案?我已经阅读了很多Stackoverflow帖子,但找不到一个有效的问题。

Storyboard

Storyboard Hiearchy

Runtime

3 个答案:

答案 0 :(得分:2)

您必须呈现普通表视图而不是导航控制器。您需要做的是将tableview作为导航控制器的根视图并显示导航控制器。

 yourTableController *vc = //reference from storyboard
            UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
     //then present the nav instead of tableview.

在Swift中:

  var nav: UINavigationController = UINavigationController(rootViewController: vc)
  //then present the nav

或者,如果您希望将tableview作为初始视图控制器,则将导航控制器(其根视图为表视图)作为故事板中的初始视图控制器。

答案 1 :(得分:0)

如果您通过[编辑器 - >嵌入 - >>添加了导航栏导航控制器]然后让你说你添加了一个UIBarButtonItem名称前进

你选择那个项目按钮并将其拖动到另一个视图控制器,它弹出说明你是否想要显示等等......你选择了segue show。

稍后您决定添加另一个UIBarButtonItem,然后将此按钮拖回主视图控制器。

在运行时,您现在看到一个空白空间尝试以下修复

1)确保您已在“故事板segue”中的两个segue中单击圆圈以识别此区域。

2)删除segue而不是导航栏!

3rd)通过将segue拖动到控制器来重新创建segue

问题应该解决,如果这个解决方案有帮助,请勾选。

答案 2 :(得分:0)

self.navigationController?.isNavigationBarHidden = false

if let _navigationItem = embeddedViewController?.navigationItem {
   self.navigationController?.navigationBar.pushItem(_navigationItem, animated: false)
}