我有一个标签栏应用程序,每个标签栏都有5个不同的导航控制器。当我从其中一个视图控制器进入并继续转到其中一个选项卡中的另一个视图时,如果我点击标签栏,它会自动弹出到根视图控制器。我不希望这种情况发生。
我有一个带有Tab1,Tab2和Tab3的标签栏。在Tab1中,用户可以从View1导航到View3(View1> View2> View3)。如果用户在View3,并且他点击Tab1,则应用程序将用户带到View1(根视图控制器)。我想禁用此功能。我不希望在Tab1上点击以弹出所有视图控制器。
我已经实现了这个
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
if(self.navigationController == viewController) {
return NO;
NSLog(@"tabbar tapped");
}
return YES;
}
是的,我在界面中有代表
@interface LoginViewController () <UINavigationBarDelegate, UITabBarControllerDelegate, UITabBarDelegate>
和这个
- (void)viewDidLoad
{
//assign target and action to done button in view
self.doneButton.target = self;
self.doneButton.action = @selector(doneButtonTapped);
//make username field instantly tapped
[self.usernameField becomeFirstResponder];
//remove back button title
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
forBarMetrics:UIBarMetricsDefault];
//
[self.tabBarController setDelegate:self];
}
但这仍然无效,任何建议人员?
基本上我对此Disable action - user taps on tabbar item to go to root view controller&amp; Disable tab bar navigating to root view 但是他们的解决方案仍然没有解决我的问题...