在 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 的 selectedIndex
或 selectedViewController
属性以编程方式更改当前选项卡。
【讨论】:
【参考方案3】:你能在你的 UITabBarController 上设置 selectedIndex 属性吗?
【讨论】:
以上是关于在 TabBarController 中的选项卡之间切换/导航的主要内容,如果未能解决你的问题,请参考以下文章
在 TabBarController 中的选项卡之间切换/导航
在 navcontroller 中的 tabbarcontroller 上方显示 top viewcontroller
iPhone TabBarController - 以编程方式设置选定的选项卡
替换 TabBarController 中选项卡的 ViewController