iphone - shouldAutorotateToInterfaceOrientation & UINavigationController

标签 iphone objective-c ipad

我正在尝试在我的应用程序中实现自动旋转,该应用程序基本上是 UINavigationController,其中有很多 UIViewControllers 被推送到它上面。

我已经将它复制粘贴到我的第一个 UIViewController 中(它被推送到 UINavigationController 中):

- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
 return YES;
}

一切正常...但是,如果我将该代码粘贴到第二个 UIViewController 中(第一个在单击某些按钮后推到顶部)- 自动旋转将不起作用。 shouldAutorotateToInterfaceOrientation 在 UIViewController 首次初始化时被调用,但在它可见并且我旋转设备后 - 没有任何反应。

因此结果是:第一个 View 旋转得很好 - 纵向/横向......但是在我单击按钮并进入第二个 View 后,我仍然停留在那个纵向或横向,无论是事件的。

我尝试子类化 UINavigationController 并在那里设置 shouldAutorotateToInterfaceOrientation,但这也不起作用。

我做错了什么?

最佳答案

API 中存在一个错误,导致它无法用于第二个 View 。我最初使用 setOrientation 解决了它,但这是一个私有(private) API,因此不是一个合理的解决方案。在尝试找出替代方案时,我还没有发布任何新版本的应用程序(而且我不认为让客户升级到 OS 4.0 是一种解决方案)。我想我需要手动跟踪方向并手动旋转我的 View 以抵消错误旋转的影响。

关于iphone - shouldAutorotateToInterfaceOrientation & UINavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783374/

相关文章:

iPhone应用程序大小

iphone - 如何为 CGPoint 线赋予独特的颜色 Xcode

iPad 上的 jQuery html()

javascript - iPad 滚动 - 滚动期间会触发哪些事件?

iphone - 使用Yeti Mic的音频在iPhone Simulator上不起作用

iphone - 使用 Restkit 解析纯文本

iphone - 从哪里开始制作将 MP3 文件转换为 iphone 有声读物 (M4B) 格式的程序?

iOS双导航栏通过设置半透明关闭

ios - 按下按钮时如何更改图像?

IOS自定义从左向右滑动UIViewcontroller并导致segue错误