在UITabbar的"更多"视图上选择索引

Seb*_*ian 5 iphone uitabbar

如何在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工作正常,但是当用户从"更多"视图中选择一些项目时,我从未得到过相关信息.有没有办法捕获"更多"视图的用户项目选择?谢谢!

aro*_*oth 2

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)