在 TabBarController 中的选项卡之间切换/导航

Posted

技术标签:

【中文标题】在 TabBarController 中的选项卡之间切换/导航【英文标题】:Switch/Navigate between Tabs in 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。

【问题讨论】:

【参考方案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 属性吗?

【讨论】:

以上是关于在 TabBarController 中的选项卡之间切换/导航的主要内容,如果未能解决你的问题,请参考以下文章

在 TabBarController 中的选项卡之间切换/导航

在 navcontroller 中的 tabbarcontroller 上方显示 top viewcontroller

iPhone TabBarController - 以编程方式设置选定的选项卡

替换 TabBarController 中选项卡的 ViewController

iOS:重用 TabBarController 并删除旧控制器的一些选项卡

当通过手势识别器滑动切换到仅点击选项卡时,在 tabbarcontroller 中切换选项卡会给出不同的结果