【问题标题】:Switch/Navigate between Tabs in TabBarController在 TabBarController 中的选项卡之间切换/导航
【发布时间】:2011-06-14 18:51:39
【问题描述】:

所以我的标签栏控制器中有 2 个标签。

我在选项卡 2 中有一个按钮,如果我单击该按钮,则需要将控制权传递给选项卡 1,它应该成为当前视图控制器。

//I should not use navigation for this because the view would navigate
the present view to the view in tab 1 ; but the tab will still indicate Tab 2//

当我点击按钮时,我只需要它转到标签 1。

【问题讨论】:

    标签: iphone objective-c ios uinavigationcontroller uitabbarcontroller


    【解决方案1】:

    当您单击按钮时,只需让它发送以下内容

    self.tabBarController.selectedIndex = 0;
    

    这将告诉它切换到其索引中的第一个选项卡(Tab 1)

    如果您想为更改添加动画,您将使用transitionFromView:toView:duration:options:completion:。为了实现这一点,您将使用如下内容:

    [UIView transitionFromView:self.view 
        toView:[[self.tabBarController.viewControllers objectAtIndex:0] view] 
        duration:1 /*or whatever time you want*/ 
        options:/*specify your animation transition here, they are found in the UIView documentation*/ 
        completion:(void (^)(BOOL finished))completion:^(BOOL finished) {
            if (finished) {
                tabBarController.selectedIndex = 0;
            }
        }];
    

    这些选项让您可以控制它的转换方式,并且有一个很好的列表,列出了您可以做的所有事情。然后完成块允许您指定完成后要执行的操作。在这种情况下,它将切换到选项卡 1,因此它是新的主控制器

    【讨论】:

    • 我可以为此添加一些动画吗?
    • 有可能,是的。 UIView 有一个很棒的方法(我已经开始使用很多)。不过,在第二个方面,我将编辑我上面的答案以将其放入,以便更容易输入和阅读。它会在几分钟内启动并准备好
    • 谢谢伙计。太棒了 :D 我删除了“(void (^)(BOOL finished))completion:”,因为它一直显示错误。动画正在工作。但是为什么他们看起来都一样呢?
    • 我不确定那个 BOOL 块是否有效,所以我想这回答了,哈哈。你是什​​么意思他们看起来都一样?他们都在做同样的事情,应该是不同的?或者你的意思是动画选择几乎都是一样的东西?
    • 动画看起来并不流畅。新屏幕总是突然出现在所有动画的底部。
    【解决方案2】:

    您可以设置您的 UITabBarController 的 selectedIndexselectedViewController 属性以编程方式更改当前选项卡。

    【讨论】:

      【解决方案3】:

      你能在你的 UITabBarController 上设置 selectedIndex 属性吗?

      【讨论】:

        猜你喜欢
        • 2012-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-24
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        相关资源
        最近更新 更多