楼主:
strife00 (strifecloud)
2016-02-25 16:18:55大家好,有个小问题想请教,我用Objective C写在AppDelegate.m里面的一个method: -
(BOOL)application: (UIApplication *)application handleOpenURL:(nonnull NSURL *
)url 中,我想要抓到我的ViewController(XCode默认的)。
但我的Storyboard中有把ViewContoller用UINavitationController包起来,请问我要怎
么写才能在AppDelegate.m里面中,抓到被UINavigationController包起来的ViewControl
ler呢?
找了一些资料,但似乎没找到解答,我之前的写法如下,但是好像不太正确:
ViewController *controller = (ViewController*)application.keyWindow.rootViewCo
ntroller;
Objective C还没有很熟是新手,请各位指教了,感谢~> <
假设你有找到navigationController他有一个属性叫做topViewController他是navigation架构的第一个VC
作者:
darktt (小朱)
2016-02-25 18:08:00嘘楼上,topViewController是拿它的最上层可见的viewController,不是第一个第一个是要透过navigationContoller.viewContollers.firstObject
作者:
LFimi 2016-02-25 18:14:00如果是特定的VC 可以用isKnidOfClass check
楼主:
strife00 (strifecloud)
2016-02-25 19:16:00感谢大家的回答,用topViewController后找到了,问题解决了!感恩~
我都用last去取,还真不知有topViewController
作者:
howdiun (Howdiun)
2016-02-26 16:25:00使用keywindow可能会抓到错误的window