在委托方法tabBarController shouldSelectViewController中检查所需的视图控制器:

Shu*_*puS 0 objective-c uitabbarcontroller ios

我有3个TabBarItemsUITabBarController:

<UINavigationController: 0xc76a680>
<SplitViewController: 0xc76a170>
<UINavigationController: 0xca5e6f0>
Run Code Online (Sandbox Code Playgroud)

我有这个方法AppDelegate:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    NSLog(@"tab selected index %@",viewController);
    if (viewController == nil ) // I NEED TO IMPLEMENT A CHECk HERE
    {
        //show popup

        return NO; //does not change the tab
    }

    return YES; //does change the tab
}
Run Code Online (Sandbox Code Playgroud)

那么如何检查应该选择的视图控制器是第二个导航控制器?谢谢

Suh*_*til 6

试试这段代码

 - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
 {        
     BOOL result;

     if (viewController == [self.tabBarController.viewControllers objectAtIndex:2]) //assuming the index of uinavigationcontroller is 2
     {
         NSLog(@"Write your code based on condition");
         result = NO;
     } 
     else {
         result = YES;
     }

     return result;
  }
Run Code Online (Sandbox Code Playgroud)