【问题标题】:Nav Bar disappearing on popviewcontroller导航栏在 popviewcontroller 上消失
【发布时间】:2013-02-14 14:28:20
【问题描述】:

在我的一个视图中,当按下按钮时,我调用另一个视图,即SplitViewController。如果通过这些按钮之一调用此SplitViewController,我将有特殊对象添加到视图中。大多只是导航栏项目,如取消按钮。此视图可以在其他地方访问,并且不需要这些项目,这就是为什么存在特殊条件的原因。

但是,当用户完成操作并且我将ViewController 弹回到之前选择的屏幕时,导航栏会在该屏幕上消失。我没有将其设置为隐藏,也没有对导航栏做任何奇怪的事情。只需添加 SplitViewController 然后弹出。

一些代码..

//declare the split screen VC
SplitScreenViewController *split = [[SplitScreenViewController alloc] init];

//set the flag that this VC is coming from a button, so we need the extra nav bar items
[split setIsFromButton:YES];
[self.navigationController pushViewController:split animated:YES];

现在回调很简单......

- (void)cancelSelectionBtnClicked
{
     [self.navigationController popViewControllerAnimated:YES];
}

当视图返回时,导航栏消失了。

有什么想法吗?

edit 应该注意的是,这完全相同的事情在其他地方也以相同的方式完成(据我所知),并且导航栏在返回时可见。

【问题讨论】:

  • 好吧,我添加了一个 navbarhidden = NO 只是为了确定,这似乎解决了它。所以酒吧显然被隐藏在某个地方。

标签: iphone ios objective-c xcode ipad


【解决方案1】:

在您的 ViewController 的 viewWillAppear 中,您可以再次使您的 navigationBar 可见。

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO];
}

【讨论】:

  • 谢谢。我和 OP 有同样的问题。
【解决方案2】:

我在 UISplitViewController 中看到了各种奇怪的导航栏行为,在少数情况下,这是因为控制器没有设置为窗口的 rootViewController,而不是像您设置的导航控制器内部那样。

【讨论】:

  • 问题实际上不在 UISplitViewController 中。它显示正常。问题在于将SplitView 推送到navigationController 堆栈的屏幕。当 splitView 弹出时,导航栏消失。
  • 我明白,但我看到它在其他控制器下方时交互不佳。苹果说拆分视图控制器必须是根:developer.apple.com/library/ios/#documentation/WindowsViews/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多