作者:
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