2

这是最简单的事情,但它让我发疯,无法弄清楚。

这很简单,请参阅下面的解决方案

我的应用程序不会自动旋转。它只是卡在肖像中。

我的 AppDelegate 创建了一个 viewController 女巫,它的 shouldAutorotate 未注释,简单地返回是。

我的 viewController 设置了一个 scrollview(x) 作为它的视图,并添加了一个子类自定义 scrollview(y) 作为它的子视图。

比 scrollview(y) 添加 UIView 作为它的子视图。此 UIView 充当内容视图,并具有 1 个或多个其他 UIView 作为子视图。

所以:AppDelegate -> scrollView(x) -> scrollView(y) -> UIView -> 1 个或多个 UIView

调用 shouldAutorotate 时显示一行。当应用程序完成加载时,这种情况会发生 2 次。当我旋转模拟器时,没有任何反应,显然没有调用 shouldAutorotate ,因为我没有看到日志中显示一行。

UIScrollview 上是否有阻止其旋转的属性?

更新:我刚刚更改了我的 plist.info 以横向启动应用程序。现在该应用程序卡在横向并且不会旋转到纵向。

仅供参考:我没有使用界面生成器,全部用代码完成。

4

1 回答 1

1

解决方案:原来我对记忆有点保守。在我的应用程序委托中,我将创建一个 viewController 的实例,将其添加到窗口中,然后在其上调用 release,认为它已添加到窗口中,因此我不再需要它了。馊主意。因此,shouldAutorotate 消息被发送到一个不再存在的对象。我确实在我的控制台中收到一条消息,关于一条消息被发送到一个已释放的对象,但在我旋转模拟器后仅几秒钟(20 左右)。

我了解到您应该始终保留对“主/根视图控制器”的引用作为 appDelegate 中的实例变量

于 2011-04-06T22:14:33.477 回答