Mus*_*afa 18 iphone tabbar uinavigationcontroller uitabbar target-action
我想在用户点击tabbar项时禁用默认操作.
例如,我有一个Tab5,Tab1,Tab2和Tab3.在Tab1中,用户可以从View1导航到View3(View1> View2> View3).如果用户在View3,并且他点击Tab1,则应用程序将用户带到View1(根视图控制器).我想禁用此功能.我不希望在Tab1上点击以弹出所有视图控制器.我怎样才能做到这一点?
编辑:
这种行为有点奇怪,但在深层次结构的情况下是一个方便的快捷方式!
您可以实现以下UITabBarControllerDelegate方法来禁用此系统范围的快捷方式:
#pragma mark -
#pragma mark UITabBarControllerDelegate
- (BOOL)tabBarController:(UITabBarController *)tbc shouldSelectViewController:(UIViewController *)vc {
UIViewController *tbSelectedController = tbc.selectedViewController;
if ([tbSelectedController isEqual:vc]) {
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
Ton*_*ion 22
如果你看一下UITabBarController委托,有一个方法:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
Run Code Online (Sandbox Code Playgroud)
如果你在类中实现它,你可以检查UIViewController是否已经显示,然后返回NO,这将阻止这种情况发生.
我在UITabBarController中嵌入了ABPeoplePicker对象时遇到了同样的问题,因为第二次按下"Contacts"选项卡会使ABPeoplePicker控件显示"Groups"
| 归档时间: |
|
| 查看次数: |
4561 次 |
| 最近记录: |