为啥添加导航控制器会使我的数组消失?

Posted

技术标签:

【中文标题】为啥添加导航控制器会使我的数组消失?【英文标题】:Why is adding a navigation controller making my array disappear?为什么添加导航控制器会使我的数组消失? 【发布时间】:2014-04-18 10:18:58 【问题描述】:

目前我有一个带有几个按钮的UIViewController,当按下这些按钮时,它们会移动到UITableViewController。每个按钮通过识别特定按钮的 segue 并显示相应的数据,将特定的数据数组加载到 UITableViewController。 这可以正常工作。

但是我希望添加一个嵌入的UINavigationController,这样我就可以浏览UITableViewController 和相应的视图,同时仍然能够“按回”到初始的UIViewController

首先,我打算把它放在哪里。我尝试了 tableViewController 并发生了两件事 -

a)如果转场仍然转到UITableViewController,则不会显示导航。

b)如果我将 segues 移动到 UINavigationController,我的数组都不会显示在 tableViewController 中,但我确实有导航。

我在哪里链接我的 segues 或者我在哪里嵌入 UINavigationController 这样才能正常工作? (我没有放任何代码,因为我认为这不会涉及它,但如果它确实让我知道,我会添加)。

不确定我是否遗漏了什么,但它不起作用。我希望能够仍然使用我已经拥有的按钮,而不是使用从 UIViewController 到 UITableViewController 的导航按钮。

在根目录下隐藏导航

- (void)viewWillAppear:(BOOL)animated 
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];



- (void)viewWillDisappear:(BOOL)animated 
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillDisappear:animated];
  

【问题讨论】:

我不确定我是否完全理解,但我仍然希望能够按下 UIViewController 上的按钮来最初到达 UITableViewController 而无需在导航栏中导航。我认为你们所说的将允许我通过 UIViewController 上的 NavBar 导航到 UITableViewController。因为我已经在这个控制器上有了一个横幅,我仍然可以通过使用我已经拥有的按钮来做到这一点。或者我在这里遗漏了一些非常简单的东西......当我作为带有按钮的控制器的根时,导航在 tableview 上消失了。 原来我忘记将我的 segues 从模式更改为推送。 【参考方案1】:

具有2个按钮的ViewController可以作为rootViewController到NavigationController。 NavigationController 可以添加到窗口中。

Window -> NavigationController -> UIViewController(作为 rootView)

希望这会有所帮助。

【讨论】:

【参考方案2】:

选择根视图控制器->编辑器->嵌入->导航控制器

【讨论】:

您还需要更改转场以推送转场。 成功了!无论如何我可以隐藏根视图控制器上的导航栏,因为我有一个横幅,我真的不需要那里的导航。 一切都好。我解决了它,它似乎在我的 rootview 上运行良好。

以上是关于为啥添加导航控制器会使我的数组消失?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的视图在内存不足警告时消失了?

为啥这个 angularjs ui-router 代码会使我的浏览器崩溃?

添加导航控制器后标签栏项目消失

在 viewwillappear 中添加自定义导航栏会使导航变慢?

UINavigationController 右键消失

为啥大型本地数组会使我的程序崩溃,而全局数组却不会? [复制]