[問題] 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