Tom*_* B. 6 iphone cocoa-touch uitabbarcontroller uikit
我试图在我的应用程序中根本不选择任何标签.首先选择第一个选项卡,但我想取消选择它,因此根本不会选择任何选项卡.
不要问我为什么,这就是客户想要的方式!呵呵
谢谢你的帮助!
PS:我已经尝试过了:
// rootController = UITabBarController
rootController.tabBar.selectedItem = 0;
rootController.tabBar.selectedItem = nil;
[rootController setSelectedIndex:[rootController.items objectAtIndex:0]];
[rootController setSelectedIndex:nil];
[rootController setSelectedIndex:0];
// That one works : (but I can't select 0 or -1 for instance)
[rootController setSelectedIndex:2];
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?再次感谢!
如果您使用的是UITabBar实例而没有UITabBarController,则可以取消选择所有选项卡栏项.
在这种情况下,下面的代码效果很好
[tabBar setSelectedItem:nil];
Run Code Online (Sandbox Code Playgroud)
如果UITabBar是UITabBarController的一部分,则应用程序将崩溃并出现异常:
"不允许直接修改由标签栏控制器管理的标签栏."
换句话说,如果您想要实现这一点,您需要在没有控制器的情况下手动管理tabbar的例程.
从文档中:
该视图控制器是当前由选项卡栏界面显示的自定义视图的控制器。指定的视图控制器必须位于 viewControllers 数组中。向此属性分配新的视图控制器会更改当前显示的视图,并在选项卡栏中选择适当的选项卡。更改视图控制器也会相应地更新 selectedIndex 属性。该属性的默认值为 nil。
所以,我假设你需要[rootController setSelectedViewController: nil];。
更新:
为了澄清一点,
[self.tabBarController setSelectedViewController:nil];
还有关于阻止选择选项卡的文档可能会有所帮助。
| 归档时间: |
|
| 查看次数: |
10918 次 |
| 最近记录: |