Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ios 6.0上,纵向模式下uisplitiview主视图中的工具栏隐藏/取消隐藏问题_Ios_Uinavigationcontroller_Uisplitviewcontroller_Uitoolbar_Ios6 - Fatal编程技术网

在ios 6.0上,纵向模式下uisplitiview主视图中的工具栏隐藏/取消隐藏问题

在ios 6.0上,纵向模式下uisplitiview主视图中的工具栏隐藏/取消隐藏问题,ios,uinavigationcontroller,uisplitviewcontroller,uitoolbar,ios6,Ios,Uinavigationcontroller,Uisplitviewcontroller,Uitoolbar,Ios6,只有在iOS 6.0上才会出现奇怪的问题。 在基于UISplitViewController的应用程序的iPad纵向模式中,主视图基于导航控制器。主视图的第一个视图控制器显示了工具栏按钮,如果我按下第二个视图控制器并隐藏工具栏,则在弹出第二个视图控制器后,第一个视图控制器工具栏上的按钮将永远丢失(即显示空白工具栏)。 工具栏按钮在第一个视图控制器的viewDidLoad中初始化。通过在第二个视图控制器的viewDidLoad中调用[self.navigationController setToo

只有在iOS 6.0上才会出现奇怪的问题。 在基于UISplitViewController的应用程序的iPad纵向模式中,主视图基于导航控制器。主视图的第一个视图控制器显示了工具栏按钮,如果我按下第二个视图控制器并隐藏工具栏,则在弹出第二个视图控制器后,第一个视图控制器工具栏上的按钮将永远丢失(即显示空白工具栏)。 工具栏按钮在第一个视图控制器的viewDidLoad中初始化。通过在第二个视图控制器的viewDidLoad中调用[self.navigationController setToolbarHidden:YES]隐藏工具栏,并通过在第一个viewcontroller的ViewWillDisplay中调用[self.navigationController setToolbarHidden:NO]再次显示工具栏

有什么建议吗?在导航控制器中隐藏/取消隐藏工具栏的正确方法是什么

顺便说一句,它在iOS 4.3、5.1.1和iPad上的iOS 6.0横向模式上都很好。此问题仅在iPad的iOS 6.0纵向模式下出现


编辑:在iPhone、ios 6.0上,同样的问题。但是,在iOS 6.0的iPad的横向模式下,这个问题很好。

因为这个问题在iOS 6.0的iPhone上也会出现,所以它可能与UISplitView纵向模式无关。(尽管UISplitView横向模式很好)

因此,我专注于UINavigationController的工具栏显示/隐藏,这个线程()解决了我的问题

我删除了viewDiDLoad和ViewWillDisplay中的SetToolbar隐藏代码,并实现了UINavigationController委托协议:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    BOOL shouldHide = [viewController.toolbarItems count] == 0;
    [navigationController setToolbarHidden:shouldHide animated:animated];
}
现在它起作用了。然而,我仍然不知道为什么最初的代码不能在iPhone和iPad的iOS 6.0人像模式下运行