如何将 UINavigationController 添加到 UITabBar 应用程序的第一个视图?

Posted

技术标签:

【中文标题】如何将 UINavigationController 添加到 UITabBar 应用程序的第一个视图?【英文标题】:How to add UINavigationController to UITabBar app's first view? 【发布时间】:2010-11-17 15:33:39 【问题描述】:

这可能与您的想法不同。我有一个 UITabBar 应用程序,带有三个选项卡,所有这些选项卡都链接到单独的 UIView。在第一个 UIView(默认启动视图)上,我有一个搜索表单。此视图没有 UINavigationController(因为此页面上不需要它)。

当用户点击搜索时,我想加载一个具有 UINavigationController 的新视图(并且仍然在底部显示标签栏,第一个标签仍然突出显示)。

从那里,我想像往常一样使用视图(这超出了这个问题的范围,所以不用担心)。

我该怎么做呢?我看过一些教程建议将 UITabBar 的第一个视图的类从 View Controller 更改为 Navigation Controller,但这会将控制器添加到第一个视图(我的搜索表单)的顶部,这不是我想要的: (。

在此先感谢 Stack Overflow!

【问题讨论】:

【参考方案1】:

惊慌失措 - 我找到了一个很好的解决方案:

- (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];

这会在第一个视图上隐藏 UINavigationController。

【讨论】:

以上是关于如何将 UINavigationController 添加到 UITabBar 应用程序的第一个视图?的主要内容,如果未能解决你的问题,请参考以下文章

ID:[...] 的 NSManagedObject 已失效

带有标签栏的 presentViewController

在 UINavigationController 中设置时图像不显示

UINavigationController - 何时释放推送的视图控制器等

使用 UINavigationController 从另一个控制器更新或重新加载 UIViewController?

为啥我似乎必须在 iOS 应用程序委托中键入 window.rootViewController?