有人可以随时向我确认在任何iPhone应用程序中只能有一个UIWindow实例吗?
更新 我在link中找到了以下信息。据此,可以有很多窗户。
此外,UIApplication对象维护了当前在应用程序中打开的所有窗口(UIWindow对象)的列表,因此通过它们可以检索任何应用程序的UIView对象。
答案 0 :(得分:5)
我过去成功使用过多个UIWindows。这有很多原因。例如,无论将多少次设置为nil,您都无法释放UIWindow的rootViewController。但是收集窗口就可以了。通过使用多个窗口可以实现一些视觉效果和清晰的代码分离。我很惊讶有多少人不愿意尝试。 Apple只说“不应该”。如果他们不希望我们使用它,我们将无法或甚至不知道。
答案 1 :(得分:0)
是的,对于iOS aps,通常只有一个UIWindow ..
答案 2 :(得分:0)
有三种类型的窗口,恕我直言,使用它们是有意义的。
普通窗口 - 您在每个应用程序中使用的keyWindow
状态栏窗口 - 用于自定义,例如“当用户点击状态栏时会发生什么”(默认是将滚动视图滚动到页面顶部,但您可以添加其他行为 - 例如,如果您的应用不使用滚动视图,但提供“等效”是有意义的功能)
提醒窗口 - 例如如果你要制作自定义弹出窗口。许多开发人员制作自定义弹出窗口,但不要将它们声明为警报窗口。有时这会导致图形故障,例如如果异步事件发生,并出现在弹出窗口的顶部,或者动画在其顶部动画。