【发布时间】:2010-12-12 12:21:40
【问题描述】:
我实现了 UITabBarControllerDelegate 事件:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
if (viewController == [tabBarController.viewControllers objectAtIndex:0]) {
//HERE:check some condition and cancel opening the viewController if needed
}
}
在上述功能中,在检查了一些条件后,我希望应用程序做一些其他事情(即打开另一个视图控制器),而不是打开用户在标签栏项目上选择的正确视图控制器。事件的行为:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
不符合我的要求。
【问题讨论】:
-
shouldSelectViewController 怎么不符合你的需求呢?只需检查您的状况。如果匹配,则执行“其他”部分并返回 NO,否则在该方法中返回 YES。
-
我想在 bar item 上有灯光效果,并在用户触摸它时打开另一个视图。如果使用 shouldSelectViewController 并返回 NO,则对这些项没有任何影响。
标签: iphone cocoa-touch tabbarcontroller