Ios 仅在UITabBarController.viewControllers上显示UITabBar
我在所有选项卡控制器中执行此操作:Ios 仅在UITabBarController.viewControllers上显示UITabBar,ios,objective-c,uitabbarcontroller,uitabbar,uitabbaritem,Ios,Objective C,Uitabbarcontroller,Uitabbar,Uitabbaritem,我在所有选项卡控制器中执行此操作: (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.tabBarController.tabBar.hidden = NO; } - 当我一个控制器接一个控制器前进时,它会工作,但在后退的时候,我的标签栏消失了 返回时UITabBar正在消失,因为调用了viewwillEnglish:method,该方法执行self.tabBarContro
(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.tabBarController.tabBar.hidden = NO;
}
-
当我一个控制器接一个控制器前进时,它会工作,但在后退的时候,我的标签栏消失了 返回时UITabBar正在消失,因为调用了viewwillEnglish:method,该方法执行self.tabBarController.tabBar.hidden=YES;线但是,我不是100%清楚您想要完成什么,所以我不确定除了删除有问题的代码行之外,如何提供解决方案。类似的方法应该可以解决这个问题。 编辑:由于它不起作用,请尝试此解决方案,您说您只想在UITabBarController上显示
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if([self isKindOfClass:[UITabBarController class]])
{
self.tabBarController.tabBar.hidden = NO;
}else{
self.tabBarController.tabBar.hidden = YES;
}
}
好的,当您返回时,它还为您将返回的viewController运行ViewWillDisplay,因此它运行hidden=NO。您的RootViewController不能在ViewWillDisplay上将其设置为hidden。当我从controller2返回controller1时,首先调用controller1的ViewWillDisplay,然后controller2的ViewWillDisplay将消失。但是我可以找到正确的方法来做我需要的事情。如果你使用viewDidAppear‘或viewDidAppear’,那该怎么办取决于你想最后出现的女巫我已经尝试过了,但是选项卡栏在闪烁。我有一个带两个控制器的UITabBarController:控制器1和控制器2。在这两个控制器中,我都添加了以下内容:voidViewWillDisplay:BOOLanimated{[super ViewWillDisplay:animated];self.tabBarController.tabBar.hidden=NO;}-voidViewWillEnglish:BOOLanimated{[super ViewWillEnglish:animated];self.tabBarController.tabBar.hidden=YES;}当我从控制器2转到控制器1时,我的选项卡栏消失了,原因是最初调用controller1的视图将出现,然后controller2的视图将消失。我只想在UITabBarController.viewControllers上看到选项卡栏,在所有其他屏幕上,如果视图控制器结构设置正确,则不应显示选项卡栏,当从屏幕上卸下UITabBarController时,它将自动卸下UITabBar,因为UITabBar的视图包含在UITabBarController的视图中。所以可能是视图结构安排不当。我认为应该有一个通用的解决方案。它是否按照您的要求工作?如果是这样的话,我会想出一个优雅的方法。让我看看,当你继续前进时,它是否正确,但当你后退时,你希望该条隐藏,但它是可见的?当我后退时,我希望该条可见,但它是隐藏的?请参阅我的编辑。这就是你想要达到的目标吗?
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if([self isKindOfClass:[UITabBarController class]])
{
self.tabBarController.tabBar.hidden = NO;
}else{
self.tabBarController.tabBar.hidden = YES;
}
}