Ios 防止UINavigationController在UITABBARC控制器的双击时弹出

Ios 防止UINavigationController在UITABBARC控制器的双击时弹出,ios,objective-c,uinavigationcontroller,uitabbarcontroller,Ios,Objective C,Uinavigationcontroller,Uitabbarcontroller,在我的故事板的根目录中有一个带有三个选项卡的UITabBarController。其中一个选项卡用于显示用户信息。如果用户尚未注册,我已将此选项卡设置为转换到注册/登录页面。但是当我双击选项卡图标时,ViewController会弹出并破坏导航栏。我不能使用模式转换,因为它隐藏了TabBarController。解决此问题的最佳解决方案是什么?您可以使用选项卡ViewConRoller的“shouldSelectViewController”委托来检查所选的viewController是否与单击

在我的故事板的根目录中有一个带有三个选项卡的UITabBarController。其中一个选项卡用于显示用户信息。如果用户尚未注册,我已将此选项卡设置为转换到注册/登录页面。但是当我双击选项卡图标时,ViewController会弹出并破坏导航栏。我不能使用模式转换,因为它隐藏了TabBarController。解决此问题的最佳解决方案是什么?

您可以使用选项卡ViewConRoller的“shouldSelectViewController”委托来检查所选的viewController是否与单击的viewController相同,并相应跳过它

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
       if(viewController == tabBarController.selectedViewController)
       {
            return NO;
       }
  }    

损坏导航栏是什么意思?导航栏显示两个视图控制器的名称。此外,Xcode嵌套推送动画上的以下消息可能会导致导航栏损坏,并在意外状态下完成导航转换。导航栏子视图树可能已损坏。我已将CustomTabBarController创建为UITabBarController的子类。已将上述方法添加到CustomTabBarController。将该选项卡的视图控制器设置为UITabBarControllerDelegate。仍然不起作用。是否为UITableBarController设置了代理?在哪里设置代理?在ViewController或CustomTabViewController中。我有一个CustomTabViewController,其中有三个选项卡作为应用程序的根视图。除非用户已登录,否则第一个选项卡ViewController UserViewController将导航到LoginViewController。我不希望LoginViewController或其任何后续ViewController弹回到UserViewController.CustomTabBarController*customTabBar=[[CustomTabBarController alloc]init];customTabBar.delegate=self;