2つのオプションがあります。もう1つは設計上より優れています。
最初のオプション:
:(何をしたい)
私はあなたのビューコントローラの構造を知っているので、私はあなたがルートビューコントローラを持っていると仮定することはできません、あなたは経由AppDelegate
からそれを得ることができます
rootVC = self.window?.rootViewController
そして、あなたがルートビューコントローラ(多くのアプリケーションと同様に、提示ビューコントローラは、タブバーコントローラである)から提示ビューコントローラを取得したい場合:
guard let tabBarController = rootVC.presentedViewController as? TabBarController else {
return
}
私が言うことをしようとしていることは、あなたのビューコントローラの出発を介してジャンプする必要があり、基本的に
tabBarController.viewControllers
:あなたのタブバーコントローラを得れば
は、ビューコントローラの配列のビューコントローラを見つけることができますあなたが望むコントローラーに到達するためにルートから、そこから変数を取得してください。これは非常にエラーが発生しやすく、一般的に推奨されません。
番目のオプション(優れた実践):
UIApplicationWillResignActiveNotification
通知のオブザーバーとして、あなたのビューコントローラのレジスタを持っています。これにより、アプリがバックグラウンドに入る直前に、View Controllerから必要な操作を行うことができます。