导航栏在popviewcontroller时消失

7
在我的一个视图中,当按下按钮时,我调用另一个视图,它是一个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];
}

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

有什么想法吗?

编辑应该注意到,同样的事情在别处以相同的方式完成(据我所知),并且导航栏在返回时可见。


好的,我加了一个navbarhidden = NO,只是为了确保,这似乎解决了问题。所以显然某个地方隐藏了该栏。 - JMD
2个回答

11

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

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

谢谢。我和楼主遇到了同样的问题。 - Pangu

1
我曾经看到过UISplitViewController中出现各种奇怪的导航栏行为,在一些情况下,这是因为控制器没有被设置为窗口的rootViewController,而是像你设置的那样放在一个导航控制器里面。请注意不要改变原有HTML标签格式。

问题实际上不在UISplitViewController中。它显示得很好。问题在将SplitView推入navigationController的堆栈的屏幕中。当splitView弹出时,导航栏消失了。 - JMD
我理解,但是当与其他控制器位于下方时,我发现它的交互表现很差。苹果公司表示,分割视图控制器必须是根控制器:http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/SplitViewControllers.html - Peter DeWeese

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接