1
zhigang1992 2015-02-10 08:45:49 +08:00 via Android
UIApplcation.sharedApplication.delegate.keyWindow.rootViewController.presentViewController
|
2
railgun 2015-02-10 10:27:23 +08:00
@zhigang1992 keyWindow不一定正确,如果当前显示的是一个AlertView,那么keyWindow拿到的就是AlertView的window,它的rootViewController是不允许present的。
可以用UIApplicationDelegate的window属性(我觉得你说的应该是这个),但是这个依赖于AppDelegate的实现。AppDelegate在实现的时候,如果没有暴露get方法,是会抛异常的。 又或者,可以直接从 UIApplication 的 windows 属性中,取第一个窗口。[UIApplication sharedApplication].windows.firstObject |
3
Stony 2015-02-10 10:44:11 +08:00
原则上,工具类只负责工具功能,不负责跳转,跳转交给viewcontroller来干:
viewcontroller调用其他功能 viewcontroller调用工具功能 viewcontroller负责跳转 如果你的工具类专管跳转,那么有2个选择: 1 如果不是核心跳转模块,那么把调用时的self(viewcontroller)作为参数传入。 2 如果是核心跳转模块,那么应该维护一个viewcontroller的堆栈(参考UINavicationController)。 |