在 iOS 中导航期间更改 UITabBar
Posted
技术标签:
【中文标题】在 iOS 中导航期间更改 UITabBar【英文标题】:Changing UITabBar during Navigation in iOS 【发布时间】:2010-11-17 09:12:26 【问题描述】:当我的应用程序启动时,它会显示一个导航视图,底部有一个表格视图和一个标签栏。
类似这样的:
TabBar --> UINav1, UINav2, UINav3, UINav4
每个 UINav 都包含一个最终显示的 ViewController。
如果用户从 ListView(主屏幕)移动到详细视图,我想要做的是更改 UITabBar。
我不必更换整个标签栏,至少可以更改/删除按钮。
但是,如果我使用上述模型(将 TabBarController 设置为根控制器),那么它似乎在导航过程中几乎被卡住并且不可变。我能做的最好的就是将它隐藏在某些视图中。
一天来我一直在努力解决这个问题。
谢谢!
【问题讨论】:
【参考方案1】:你可以使用
- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated
在你的 UITabBarController 中设置 tabBar 任何你想要的 viewController
编辑:你可能不想看这个问题希望看起来很相似iPhone, how I hide a tab bar button?
【讨论】:
ebany,我正在努力寻找隐藏标签栏按钮的答案,以解决您昨天帮助我解决的问题。但我都无法工作:( setViewControllers 的问题在于您正在更改一个全局控制器的状态,因此即使您返回(通过导航)它也已更改。【参考方案2】:这不是很常见,但您可以以模态方式呈现一个新的标签栏控制器及其关联的视图。
假设您的 listView 是 UITableViewController,您可以在 didSelectRowAtIndexpath
方法中推送新的标签栏控制器。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
// ...
[self.tabBarController presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated]
PS:在这种情况下,我会非常小心地构建 UI,因为它可能会让用户感到非常困惑)。
我希望它有所帮助。 罗格
【讨论】:
【参考方案3】:经过进一步研究,认为这是不可行的。
【讨论】:
以上是关于在 iOS 中导航期间更改 UITabBar的主要内容,如果未能解决你的问题,请参考以下文章
在 ios 6/ios 7 兼容应用程序中更改导航返回按钮操作