2016-11-10 20 views
2

アプリで画面切り替えをグローバルに検出する方法があるかどうかは疑問でした。アプリケーション代理人から? isMovingFromParentViewController()やisMovingToParentViewController()などのメソッドがあることはわかっていますが、それらはローカルでしか使用できません。すべての情報が役に立ちます、ありがとう!スウィフトでiOSの画面遷移(切り替え)をグローバルに検出する

クリスチャン

+0

「viewWillAppear」または「viewDidAppear」をオーバーライドしてそこから通知を送信できます。 – alexburtnik

+0

こんにちは、 'UINavigationController'をアプリケーションの' UIViewController'のすべての 'ContainerView'として使うと、' AppDelegate'からグローバルに検出できます。あなたは私の答えをもっと詳しく調べることができます – KrishnaCA

+0

こんにちは、あなたはすでにこの問題を解決しましたか? – KrishnaCA

答えて

0

あなたは次のようにAppDelegateUIWindowためrootViewControllerとしてグローバルUINavigationControllerを使用しようとしている場合。

let navigationController:UINavigationController = UINavigationController(rootViewController: ViewController()) 
navigationController.delegate = self 

window = UIWindow(frame: UIScreen.main.bounds) 
window?.rootViewController = navigationController 
window?.makeKeyAndVisible() 

その後UINavigationControllerDelegateで、次のデリゲートメソッドは、新しいUIViewControllerUINavigationControllerに現れたときにあなたを助けるAppDelegate

func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) { 

} 

func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) { 

} 

上記の機能で作業を行います。残念ながら、これらの変更を確認する方法はありません。UIWindow助けてくれたら教えてください。

関連する問題