【发布时间】:2012-08-09 16:51:31
【问题描述】:
在大多数情况下,我已经很好地解决了问题。我似乎无法解决一个小问题。我会尽可能地概述这个问题,我不认为此时提出我的问题需要我发布任何代码,但请随时提出。
与大多数应用程序一样,我的应用程序默认为纵向视图。在主交互区域,当用户旋转设备时,我不必提供更改任何主要内容的代码,因为相反,我在视图堆栈顶部放置了一个新视图。这很有效,是用户在横向模式下与设备交互的两种方式之一。
第二个是模态显示的屏幕(来自这个主交互区域),它使用 UIWebView 从应用程序内播放 YouTube 视频,这同样运作良好。
当用户在横向模式下关闭模态视图控制器时,就会出现问题。发生的情况是用户返回主交互区域,内容调整为横向模式,而视图控制器通常为该主交互区域调用的委托方法没有被调用,我使用此委托方法使横向改变正常:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { }
我会附上正在发生的事情的截图。
纵向模式下主要交互区域的截图。
横屏模式下主要交互区域的截图。
在横向模式下关闭模态视图控制器并返回主交互区域后主交互区域的屏幕截图(注意内容已居中并已切断顶部且未拉伸(不是我要求它这样做)
理想情况下,我想从横向模式返回主屏幕,让屏幕截图 2 成为用户看到的内容,而不是屏幕截图 3。
有什么建议吗?同样,我很高兴发布代码。提前致谢。
编辑
回答:
如此简单,我采用了将景观视图放置在视图堆栈顶部的代码,当它在它自己的方法中打开时。然后我在之前休息的委托方法和 ViewWillAppear 中调用该方法。
【问题讨论】:
标签: objective-c ios uiapplicationdelegate landscape-portrait