[问题] objective c 小问题请教

楼主: 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还没有很熟是新手,请各位指教了,感谢~> <
作者: powerwolf543 (NixonShin)   2016-02-25 17:34:00
假设你有找到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后找到了,问题解决了!感恩~
作者: cryinglove (毓™)   2016-02-25 20:36:00
我都用last去取,还真不知有topViewController
作者: howdiun (Howdiun)   2016-02-26 16:25:00
使用keywindow可能会抓到错误的window

Links booklink

Contact Us: admin [ a t ] ucptt.com