看板 MacDev 關於我們 聯絡資訊
大家好,有個小問題想請教,我用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還沒有很熟是新手,請各位指教了,感謝~> < -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.12.200 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1456388337.A.FB1.html
powerwolf543: 假設你有找到navigationController他有一個屬性叫做 02/25 17:34
powerwolf543: topViewController他是navigation架構的第一個VC 02/25 17:35
darktt: 噓樓上,topViewController是拿它的最上 02/25 18:08
darktt: 層可見的viewController,不是第一個 02/25 18:08
darktt: 第一個是要透過navigationContoller.view 02/25 18:10
darktt: Contollers.firstObject 02/25 18:10
LFimi: 如果是特定的VC 可以用isKnidOfClass check 02/25 18:14
strife00: 感謝大家的回答,用topViewController後找到了,問題解 02/25 19:16
strife00: 決了!感恩~ 02/25 19:16
cryinglove: 我都用last去取,還真不知有topViewController 02/25 20:36
howdiun: 使用keywindow可能會抓到錯誤的window 02/26 16:25