gpt4 book ai didi

ios - 使用 popToRootViewControllerAnimated :YES 时导航栏消失得比 View 快

转载 作者:行者123 更新时间:2023-12-01 19:03:54 24 4
gpt4 key购买 nike

我在导航 vc 中嵌入了一个根 vc,我将导航栏设置为隐藏使用
[self.navigationController setNavigationBarHidden:YES];它工作正常,导航栏消失。

并推送第二次vc使用[self.navigationController pushViewController:controller animated:YES];在第2个vc中设置导航栏显示。一切顺利。

所以当我点击导航栏上的“后退按钮”时,我发现导航栏消失得比 View 快,尤其是把 View 的背景设置为黑色,我可以看到
整个 View 是黑色的,就像没有任何导航栏一样。
我不想要这个,我只希望导航栏一直存在,直到 viewDidDisappear。

Here is a picture of the problem

我用 [self.navigationController popViewControllerAnimated:YES];并且必须填写 Animated is YES 才能重现这种外观。

对于排序,

  • 导航vc中的两个vc。
  • 根vc的导航栏被隐藏,第二个VC从根vc推送。
  • 第二个vc制作了导航栏显示。
  • 使用[self.navigationController popViewControllerAnimated:YES]回来。

  • 代码位置在哪里:
    ps:无论你如何设置导航栏的 hidden-property,在 ViewDidLoad 或 ViewWillAppear 或 ViewDidAppear 或其他地方,它们的外观都是一样的。

    在根 vc 的 viewDidLoad
    [self.navigationController setNavigationBarHidden:YES];
    和 root vc 的 didSelectRowAtIndexPath: [self.navigationController setNavigationBarHidden:NO];

    最佳答案

    哪里错了

  • RootView 和 SubView 在同一个 NavigationController 层次结构中。这意味着 navigationBar 既不属于 RootView 也不属于 SubView。
  • 在这种情况下,navigationBar 是全局且唯一的。您不能仅使用一个导航栏来处理两个 View 的显示。

  • 怎么解决
  • 在 subview 中,我创建了一个新的导航栏来替换现有的导航栏,并将其添加到 subview 的 subview 中。它运作良好。
  • 关于ios - 使用 popToRootViewControllerAnimated :YES 时导航栏消失得比 View 快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21015570/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com