【问题标题】:PresentViewController Hiding UINavigationBarPresentViewController 隐藏 UINavigationBar
【发布时间】:2014-01-27 06:29:07
【问题描述】:

我的观点

  • ViewController:主视图,UINavigationController
  • IntroViewController:介绍视图, UINavigationController

在代码的开头我稍微检查一下用户之前是否看过介绍视图,如果没有,我使用以下代码从ViewController获取到IntroViewController

IntroViewController *introViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"IntroViewController"];
            [self presentViewController:introViewController animated:NO completion:nil];

一切正常,intro 播放良好,然后使用以下代码返回ViewController,UINavigationBar 和 UIToolbar 消失了,但视图的内容仍然可见:

ViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
            [self presentViewController:homeViewController animated:NO completion:nil];

我觉得我错过了一些小东西,我只是找不到它。谁能给我一些建议?

【问题讨论】:

    标签: ios objective-c uinavigationcontroller uinavigationbar uitoolbar


    【解决方案1】:

    发生这种情况是因为您将视图控制器呈现为“它是”。 我敢打赌,您没有 UINavigationController 来控制 Storyboard 中的 HomeViewController,对吧? 而且,当然,IntroViewController 中确实有一个UINavigationController(或者它是由UINavigationController控制”),对吧?

    解决方案是添加将管理您的 HomeViewController 的UINavigationController。在这种情况下,一切都会好起来的。

    但不要忘记,从那一刻起,您的应用中将有 2 个不同的 UINavigationController 实例。

    当控制器被呈现时,它的视图被添加视图层次结构中,而不是导航堆栈中。

    来自-[UIViewController presentViewController:animated:completion:] 文档:

    此方法将presentedViewController 属性设置为指定的视图控制器,调整该视图控制器的视图大小,然后将视图添加到视图层次结构中

    参考请阅读this

    【讨论】:

      【解决方案2】:

      当您想回到呈现给您的控制器时,您不会呈现该控制器的另一个实例,这就是您正在做的事情。你解雇自己,

      [self dismissViewControllerAnimated:YES completion:nil];
      

      【讨论】:

        【解决方案3】:

        presentviewcontroller 方法替换了整个视图,因此如果您有任何导航栏或工具栏.. 它不会显示出来。

        如果你想回到前一个视图..你应该使用

        [self dismissViewControllerAnimated:YES completion:nil];
        

        如果出于任何原因...您需要创建该视图的新实例...您应该创建一个新的导航控制器,将目标视图控制器设置为根视图控制器...并显示导航控制器。这将使导航栏再次出现。

        GL 高频

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-22
          相关资源
          最近更新 更多