应用程序中多个 UIWindow 的最佳实践
Posted
技术标签:
【中文标题】应用程序中多个 UIWindow 的最佳实践【英文标题】:Best Practices for more than one UIWindow in an application 【发布时间】:2012-06-01 18:32:58 【问题描述】:专家,请分享在当前窗口顶部添加 UIWindow 时必须注意的最佳方法和实践。(Window1)我有一种情况,我已将视图“A”的方向锁定为纵向视图控制器。然后我创建一个新的 UIWindow 并将其设置为键和可见。这个新 UIWindow 的根视图控制器又是一个支持所有方向的视图控制器。我遇到的问题是,每当我将前一个窗口(比如 window1)作为键并再次可见时,并尝试旋转设备,即使视图保持锁定到特定方向(比如纵向),状态栏也在旋转,看起来非常奇怪。
【问题讨论】:
为什么要使用多个 UIWindow?我从来不需要拥有多个 UIWindow。你为什么要这样做真的没有道理。你能解释一下你想用 2 个窗口完成什么吗? 您不应使用多个 UIWindow,您是否要删除第二个 UIWindow?您在第一个窗口上添加了第二个窗口?你的问题不是很清楚,在这种情况下你可以-resignKeyWindow,但我认为这根本不是一个好习惯 我想通过自定义视图来模拟 uiAlertview。那就是我遵循的方法 你不需要一个窗口。自定义视图就可以了。 我同意,事实上,即使是 Apple 关于该主题的文档也强烈反对多窗口应用程序。他们声明一个应用程序应该有 1 个窗口和多视图(如果应用程序需要)。 【参考方案1】:我认为将自定义警报旋转到应用程序不支持的方向是一个坏主意。反正。为了防止状态栏旋转,您应该删除第二个窗口
[alertWindow setHidden:YES];
[alertWindow release];
alertWindow=nil;
在您的警报消失后。
你也可以考虑点赞:
https://github.com/eaigner/CODialog https://github.com/gpambrozio/BlockAlertsAnd-ActionSheets https://github.com/kyoshikawa/ZPopoverController https://github.com/TomSwift/TSAlertView【讨论】:
以上是关于应用程序中多个 UIWindow 的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
同时使用多个 NSURLConnections - 最佳实践