iPhone应用程序中没有UIWindow实例

时间:2010-09-23 06:20:33

标签: iphone uiwindow

有人可以随时向我确认在任何iPhone应用程序中只能有一个UIWindow实例吗?

更新 我在link中找到了以下信息。据此,可以有很多窗户。

  

此外,UIApplication对象维护了当前在应用程序中打开的所有窗口(UIWindow对象)的列表,因此通过它们可以检索任何应用程序的UIView对象。

3 个答案:

答案 0 :(得分:5)

我过去成功使用过多个UIWindows。这有很多原因。例如,无论将多少次设置为nil,您都无法释放UIWindow的rootViewController。但是收集窗口就可以了。通过使用多个窗口可以实现一些视觉效果和清晰的代码分离。我很惊讶有多少人不愿意尝试。 Apple只说“不应该”。如果他们不希望我们使用它,我们将无法或甚至不知道。

答案 1 :(得分:0)

答案 2 :(得分:0)

有三种类型的窗口,恕我直言,使用它们是有意义的。

  1. 普通窗口 - 您在每个应用程序中使用的keyWindow

  2. 状态栏窗口 - 用于自定义,例如“当用户点击状态栏时会发生什么”(默认是将滚动视图滚动到页面顶部,但您可以添加其他行为 - 例如,如果您的应用不使用滚动视图,但提供“等效”是有意义的功能)

  3. 提醒窗口 - 例如如果你要制作自定义弹出窗口。许多开发人员制作自定义弹出窗口,但不要将它们声明为警报窗口。有时这会导致图形故障,例如如果异步事件发生,并出现在弹出窗口的顶部,或者动画在其顶部动画。