主视图控制器在点击项目并快速将方向从纵向更改为横向后消失

Posted

技术标签:

【中文标题】主视图控制器在点击项目并快速将方向从纵向更改为横向后消失【英文标题】:Master view controller disappears after tapping an item and quickly changing orientation from portrait to landscape 【发布时间】:2013-04-25 09:15:59 【问题描述】:

Xcode 4.5

iPad 设备应用。

对于 iPad 主视图控制器应用程序,主视图控制器在点击项目并快速将方向从纵向模式更改为横向模式后消失。

我为 iPad 的 Master-Template 应用程序使用了默认模板。 在纵向模式(iPad)中,我点击主控制器上的“+”按钮并添加了大约 10 个项目。之后,我点击了主控制器中突出显示的项目之一(参考屏幕截图),然后快速将方向从纵向更改为横向。在横向模式下,主控制器消失并出现空白(黑色)屏幕。

我进一步分析,发现以下代码行有问题

[self.masterPopoverControllerdismissPopoverAnimated:YES];

在DetailViewController.m中

- (void)setDetailItem:(id)newDetailItem

    if (_detailItem != newDetailItem) 
        _detailItem = newDetailItem;

        // Update the view.
        [self configureView];
    

    if (self.masterPopoverController != nil) 
        [self.masterPopoverController dismissPopoverAnimated:YES];
            

如果我将 NO 传递给 [self.masterPopoverController dismissPopoverAnimated:NO]; 然后一切正常。

如何解决这个问题?

谢谢

【问题讨论】:

[self.masterPopoverControllerdismissPopoverAnimated:NO];。 Animated 参数与您的问题没有任何关系,它只是说明动作是否应该以动画方式发生。 我觉得动画延迟在这里造成了一些问题。 你能告诉我你在旋转函数中使用的代码吗? 我没有使用任何代码进行轮换。我只是在 iPad 的 Master-Detail 应用程序中使用默认模板,然后执行上述步骤。 【参考方案1】:

在我的例子中,它是 IB 中的一个复选标记:使用自动布局

当我取消选中它时,一切都很好地旋转。

希望对你有帮助!

【讨论】:

以上是关于主视图控制器在点击项目并快速将方向从纵向更改为横向后消失的主要内容,如果未能解决你的问题,请参考以下文章

当视图从纵向更改为横向时,方向不会改变

如何将视图从纵向模式更改为横向模式并锁定它?

在iOS中单击按钮将设备方向从纵向更改为横向

只有在将方向更改为横向并返回纵向后,纵向布局才能正确显示

将 Cocos 2d 方向横向更改为纵向

如何将已开发的应用程序更改为横向和纵向两种方向?