2010-09-16 55 views
10

我想做一些类似于UIAlertView的事情,也就是说 - 没有引用任何UIView或UIViewController,在所有使用presentModalViewController的窗口上呈现一个UIViewController。[UIAlertView show]如何工作?

看看文档我找不到一种方法,这是可能的!

在OS4,有这样的事情:

UIWindow *window = [UIApplication sharedApplication].keyWindow 
UIViewController *rootViewController = window.rootViewController 

...但是这是不可能的OS3。

有没有人知道如何在OS3中实现相同的效果?

谢谢!


OK - 所以我解决了这个与委托回调无数到ViewController本身!虽然这是实现这个目标的正确方法,但它确实有点奇怪,在执行的任何阶段都无法处理警报(等等)的顶级View Controller。

如果有人知道如何做到这一点,我还是会非常感兴趣!

回答

19

UIAlertView创建自己的UIWindow您的应用程序的主窗口上方,makeKeyAndVisible -s它,并在该窗口自己的看法动画。

+0

啊 - 开眼!这次真是万分感谢! Nick – 2010-09-17 07:46:52

+2

什么/谁保留UIWindow实例?当我创建一个UIWindow的实例,但不保留它作为实例变量/属性时,它永远不会出现,并且似乎也从'[[UIApplication sharedApplication]窗口]'阵列中删除。我错过了什么吗? – 2013-03-08 09:31:05

+0

好了,为了创建一个类似于UIAlertView的覆盖图,我通过创建一个保留循环使我的UIWindow子类有效地保留了自己。我将“自我”分配给一个强大的财产,然后以我的解雇方法,我将该财产设置为零。似乎工作,这是一个坏主意吗?我假设UIAlertView做了类似的事情。 – 2013-03-08 09:49:33