如何在UITabBar的"更多"视图中管理用户选择?我有这个代码来管理UITabBarItems选择:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (!(viewController == tabBarController.moreNavigationController)) {
int index = tabBarController.selectedIndex;
[[DataManager sharedInstance] setCurrentTabbarIndex:index];
}
}
Run Code Online (Sandbox Code Playgroud)
它对于可见的UITabBarItems工作正常,但是当用户从"更多"视图中选择一些项目时,我从未得到过相关信息.有没有办法捕获"更多"视图的用户项目选择?谢谢!
UITabBarController 的“更多”视图与其他视图分开处理。苹果公司对此主题的讨论如下:
['moreNavigationController'] 属性始终包含有效的“更多”导航控制器,即使屏幕上未显示“更多”按钮也是如此。您可以使用此属性的值在选项卡栏界面中选择“更多”导航控制器,或将其与当前选定的视图控制器进行比较。
不要手动将存储在该属性中的对象添加到标签栏界面。更多控制器会根据需要由选项卡栏控制器自动显示。您也不得在 viewControllers 属性中存储的视图控制器数组中查找“更多”导航控制器。选项卡栏控制器不包括该对象数组中的更多导航控制器。
由此看来,我认为你可以这样做:
int index = tabBarController.selectedIndex;
if (tabBarController.selectedViewController ==
tabBarController.moreNavigationController) {
index = -1; //assign some placeholder index for the "More" controller
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3756 次 |
| 最近记录: |