Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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
Objective c UINavigationBar未在';背面';风景画_Objective C_Iphone_Ipad_Uinavigationcontroller - Fatal编程技术网

Objective c UINavigationBar未在';背面';风景画

Objective c UINavigationBar未在';背面';风景画,objective-c,iphone,ipad,uinavigationcontroller,Objective C,Iphone,Ipad,Uinavigationcontroller,我正在开发一个由UINavigationController驱动的iPad应用程序(在模拟器中进行测试)。导航控制器堆栈上只有两个UIViewController。为了演示,让我们将它们称为SetupController和ContentController。SetupController在堆栈上使用 [self.navigationController pushViewController:contentController animated:YES]; 查看内容时,您可以按后退按钮返回到设置

我正在开发一个由UINavigationController驱动的iPad应用程序(在模拟器中进行测试)。导航控制器堆栈上只有两个UIViewController。为了演示,让我们将它们称为SetupController和ContentController。SetupController在堆栈上使用

[self.navigationController pushViewController:contentController animated:YES];
查看内容时,您可以按后退按钮返回到设置控制器。如果应用程序处于纵向模式,则一切正常

然而,当应用程序处于横向时,我按了后退按钮,事情就乱了套。视图控制器堆栈已正确更新(例如,我看到SetupController的视图),但UINavigationBar未正确更新。与ContentController关联的UINavigation栏项目仍将显示。要查看SetupCotroller预期的UINavigationBar项目,我必须再次按下back按钮,此时UINavigationBar将动画设置为正确的状态。同样,这只发生在横向模式下,纵向模式工作完美

作为测试。在[SetupController ViewDidDisplay:]方法中,我添加了以下调试输出

 if(self.navigationController.navigationBar.topItem != self.navigationItem) {
  NSLog(@"wrong nav item!");
 } else {
  NSLog(@"correct nav item!");
 }
每当模拟器处于横向模式时,我都会收到“错误”的消息,而在纵向模式时,则不会收到。我已尝试从ViewController和任何我正在修改其导航项或导航栏本身的实例中删除所有ViewDidDisplay:消息


有什么想法吗?我假设我在这里做错了什么,但这对我来说确实是个错误。

我遇到了同样的问题。这很奇怪,但您需要确保堆栈中的所有视图控制器都实现了以下功能(即使所有内容都正确显示):

  • (布尔)应自动旋转指针面定向:(UIInterfaceOrientation)interfaceOrientation{ 返回YES; }