【问题标题】:How can I show a tabbar when pushing a UIViewController onto the Navigation stack将 UIViewController 推送到导航堆栈时如何显示选项卡栏
【发布时间】:2009-08-27 03:35:21
【问题描述】:

因此,当您将视图控制器推送到导航控制器堆栈时,隐藏标签栏非常容易:

uiViewController.hidesBottomBarWhenPushed = YES;

效果很好。

假设我想深入堆栈并再次显示?

设置

 laterUIViewController.hidesBottomBarWhenPushed = NO; 

在一些后来的视图控制器上不会让它重新出现。它仍然是隐藏的。

【问题讨论】:

    标签: iphone iphone-sdk-3.0


    【解决方案1】:

    您可以尝试继承 UIViewController 并覆盖

    - (void)viewWillAppear:(BOOL)animated { self.hidesBottomBarWhenPushed = YES; }
    - (void)viewWillDisappear:(BOOL)animated { self.hidesBottomBarWhenPushed = NO; }
    

    然后将该子类用作要显示底栏的视图控制器的超类。

    【讨论】:

    • 我有类似的工作要做。当视图重新出现时,动画是错误的。回去时会出现不尊重视图,所以我不得不跳过一堆铁环才能恢复工作。
    【解决方案2】:

    这对我有用:

    - (void)viewWillAppear:(BOOL)animated { self.tabBarController.tabBar.hidden = YES; }
    - (void)viewWillDisappear:(BOOL)animated { self.tabBarController.tabBar.hidden = NO; }
    

    【讨论】:

      【解决方案3】:

      试试这个解决方法:如果你没有在视图控制器之间切换动画,它应该可以正常工作。

      这个想法是让您的标签栏控制器的视图尺寸更大,以便标签栏(位于视图底部)离开屏幕并在隐藏视图时恢复视图尺寸。

      在应该隐藏标签栏的视图控制器中定义以下方法:

      -(void)viewWillAppear:(BOOL)animated{
          [super viewWillAppear:animated];
      
          CGRect r = self.tabBarController.view.frame;
          r.size.height +=self.tabBarController.tabbar.frame.size.height;
          self.tabBarController.view.frame = r;
      }
      
      -(void)viewWillDisappear:(BOOL)animated{
          [super viewWillDisappear:animated];
          self.tabBarController.view.frame = CGRectMake(0, 0, 320, 480); //for iPhone portrait
      }
      

      您需要确保在您的应用中定义了委托标签栏控制器和窗口出口并与 XIB 正确链接

      @property (nonatomic, retain) IBOutlet UIWindow *window;
      @property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
      

      【讨论】:

        【解决方案4】:

        尝试取消隐藏它,所以你告诉它隐藏,它隐藏,但是你告诉它不要隐藏它(如果你将它设置为 no,我不知道它是否会重新显示它)但看起来它不是,要么你告诉它当你想要栏的视图控制器已经被推送时不要隐藏,并且在下一个视图控制器被推送之前它不会取消隐藏栏,所以你应该尝试将它设置为不隐藏.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-01
          相关资源
          最近更新 更多