Masz dwie opcje, druga jest lepsza z założenia.
Pierwsza opcja (co chcesz)
nie wiem struktury Państwa zdaniem kontrolerów, więc pozwól, że masz kontroler widoku głównego, można dostać od AppDelegate
poprzez:
rootVC = self.window?.rootViewController
A jeśli chcesz uzyskać przedstawione kontroler widok od kontrolera widoku głównego (jak wielu aplikacjach, przedstawiony widok kontroler jest kontrolerem bar tab):
guard let tabBarController = rootVC.presentedViewController as? TabBarController else {
return
}
Gdy pojawi się kontroler pasku kart można znaleźć kontroler widoku w tablicy widoku kontrolerów:
tabBarController.viewControllers
Zasadniczo, co próbuję powiedzieć, to trzeba przeskoczyć przez Pana zdaniem kontrolerów rozruchu od korzenia, aby dostać się do kontrolera, który chcesz, a następnie pobrać zmienną z tego miejsca. Jest to bardzo podatne na błędy i na ogół niezalecane.
Druga opcja (lepsza praktyka):
Mają swój rejestr widok kontrolera jako obserwator powiadomienia UIApplicationWillResignActiveNotification
. Pozwoli ci to zrobić, co chcesz, z kontrolera widoku, gdy aplikacja ma zamiar wprowadzić tło.