【问题标题】:Using setNavigationBarHidden in viewWillAppear doesn't work在 viewWillAppear 中使用 setNavigationBarHidden 不起作用
【发布时间】:2016-12-06 10:30:26
【问题描述】:

假设我们有三个像这样依次推送的屏幕 A->B->C 而屏幕 A 原本是在一个 tabBar 中。 导航栏应隐藏在屏幕 C 中并在所有其余部分中可见。为此,我正在执行以下操作

-(void) viewWillAppear:(BOOL)animated{

   [super viewWillAppear:animated];

   [self.navigationController setNavigationBarHidden: YES animated:NO];
}

在所有情况下都会调用 viewWillAppear,但隐藏或显示导航栏不一定会反映在 UI 上。 例如,如果使用后退按钮,导航栏会同时出现在 A 和 B 中,但如果点击 tabBarButton ,这会导致应用直接从屏幕 C 跳转到屏幕 A,屏幕 A 将缺少导航栏。 我检查了 self.navigatioController 并且它已初始化并具有值。

我也尝试在 viewDidAppear 中设置 NavigationBarHidden 属性,但没有成功。

在这个问题上有什么帮助吗?什么可能导致这种奇怪的情况?

编辑:回答 我发现了这个问题。 屏幕 C 是许多容器的复杂屏幕。在其中一个容器中,我正在更改导航栏状态,这会影响应用程序中的其他所有内容,并导致奇怪的行为,让我无法自己控制状态。 给您添麻烦了。

【问题讨论】:

  • 您是否尝试将其隐藏在 vc B 的 viewDidDissapear 上?
  • 是的,我做了,但也没有用
  • [self.navigationController setNavigationBarHidden:YES]; 对我来说很好,我只是把它放在viewDidLoad 中,如果你在代码中的某个地方取消隐藏它,你可能需要再次检查
  • @Mohammad Allam 请检查我的答案并告诉我它是否有效..

标签: ios objective-c uinavigationcontroller hidden viewwillappear


【解决方案1】:

在 viewController A 和 viewController B 中,都使用这个:

-(void) viewWillAppear:(BOOL)animated{

   [super viewWillAppear:animated];

   [self.navigationController setNavigationBarHidden: NO animated:NO];
}

在 viewController c 中,使用这个(如问题所述):

-(void) viewWillAppear:(BOOL)animated{

   [super viewWillAppear:animated];

   [self.navigationController setNavigationBarHidden: YES animated:NO];
}

【讨论】:

  • 这正是正在做的,但由于某种原因它不起作用。它以前可以工作,但突然停止了。
  • 你能发一张你的viewControllers的截图吗?
  • 我可以知道这将如何影响答案吗?因为这是公司财产,我不能这样做
  • 我现在正在制作一个示例。完成后我会更新我的答案。
  • 非常感谢您的帮助,不胜感激。
【解决方案2】:

我发现了这个问题。屏幕 C 是一个包含许多容器的复杂屏幕。 在其中一个容器中,我正在更改 navigationBar 状态,这会影响应用程序中的其他所有内容并导致奇怪的行为。

【讨论】:

    【解决方案3】:

    尝试以下方法:-

      [self.navigationController setNavigationBarHidden: YES animated:YES];
    

    代替:-

       [self.navigationController setNavigationBarHidden: YES animated:NO];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多