Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 仅在UITabBarController.viewControllers上显示UITabBar_Ios_Objective C_Uitabbarcontroller_Uitabbar_Uitabbaritem - Fatal编程技术网

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;
  }
}