iPhone如何确定先前视图控制器支持的方向

时间:2012-05-22 19:29:54

标签: iphone sdk orientation uialertview

由于内置的​​iOS UIAlertView不具备皮肤的能力,我已经构建了自己的UIAlertViewCustom类,而我正在使用它。我的任何视图控制器都可以显示UIAlertViewCustom的实例,除了我的版本允许使用图形/字体/颜色等外观之外,还可以显示UIAlertViewCustom的实例。

我的UIAlertViewCustom类通过创建新的密钥窗口和根视图控制器来工作。然后我在这个新的根视图控制器上绘制我的消息视图。 (选择显示消息的视图控制器在后台看到,就像你在UIAlertView中看到的一样。

所有这一切都很完美。我想要实现一项功能但尚未弄清楚如何实现。我希望UIAlertViewCustom的每个实例都知道它是否应该在设备方向改变时自动旋转。当然,我想知道下面的视图控制器(创建UIAlertViewCustom实例并显示它的视图控制器)支持哪些方向?如果它只支持肖像,那么我不会自动旋转UIAlertViewCustom等。

我不希望每个视图控制器都必须将支持的orientation属性传递给UIAlertViewCustom的每个实例。我希望UIAlertViewCustom的每个实例能够确定它是否应该自动旋转。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我会在你的视图控制器类中尝试这个:

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return [[view superview] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}

我不确定它是否会起作用,但这就是我要开始的地方。这是必要的,因为默认实现会为YES返回UIInterfaceOrientationPortrait,其他所有内容都为NO

另一件小事。 Apple保留了它使用的前缀(NS,CF,CA,UI等),您的自定义类不应使用它们。

编辑将[自我超级视图]更改为[查看超级视图]