【问题标题】:Changing UITabBar during Navigation in iOS在 iOS 中导航期间更改 UITabBar
【发布时间】:2010-11-17 09:12:26
【问题描述】:

当我的应用程序启动时,它会显示一个导航视图,底部有一个表格视图和一个标签栏。

类似这样的:

TabBar --> UINav1, UINav2, UINav3, UINav4

每个 UINav 都包含一个最终显示的 ViewController。

如果用户从 ListView(主屏幕)移动到详细视图,我想要做的是更改 UITabBar。

我不必更换整个标签栏,至少可以更改/删除按钮。

但是,如果我使用上述模型(将 TabBarController 设置为根控制器),那么它似乎在导航过程中几乎被卡住并且不可变。我能做的最好的就是将它隐藏在某些视图中。

一天来我一直在努力解决这个问题。

谢谢!

【问题讨论】:

    标签: iphone ios uinavigationcontroller uitabbarcontroller uitabbar


    【解决方案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】:

      经过进一步研究,认为这是不可行的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-13
        • 2011-12-26
        • 1970-01-01
        • 2011-09-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多