Как получить контроллер верхнего уровня, когда представлен UIImagePickerController?

В какой-то момент я представляю UIImagePickerViewController . Как только он представлен, я вызываю свою функцию: UIStoryboard.topViewController() :

 extension UIStoryboard { class func topViewController(base: UIViewController? = UIApplication.sharedApplication().keyWindow?.rootViewController) -> UIViewController? { if let nav = base as? UINavigationController { return topViewController(nav.visibleViewController) } if let svc = base as? UISplitViewController where svc.viewControllers.count == 1 { return topViewController(svc.viewControllers[0]) } if let presented = base?.presentedViewController { return topViewController(presented) } return base } } 

Когда я печатаю результат, все, что я получаю, это:

0x000000014cb2aa00
{
UIKit.UIResponder = {…}
}

Как получить UIImagePickerController из функции topViewController() ?

One Solution collect form web for “Как получить контроллер верхнего уровня, когда представлен UIImagePickerController?”

Не полный ответ на ваш случай, но вот как я нахожу верхушку VC в своей программе. Вы должны иметь возможность редактировать его для своего дела.

 class UIHelper { static func getCurrentViewController() -> UIViewController? { var currentViewController: UIViewController? if let window = UIApplication.sharedApplication().delegate?.window { currentViewController = window!.rootViewController?.presentedViewController } if currentViewController == nil { return nil } //Check for my version of my main tab bar VC if let tabBarController = currentViewController as? RootTabBarController { currentViewController = tabBarController.selectedViewController print("Tab bar presents \(currentViewController)") } // Check if it's a nav VC if let navController = currentViewController as? UINavigationController { currentViewController = navController.viewControllers[0] as? UIViewController print("Nav controller presents \(currentViewController)") } print("Current controller: \(currentViewController)") return currentViewController } } 
  • анимация presentViewController со стороны
  • Как использовать один xib с несколькими контроллерами?
  • Создание одноэлементного элемента управления представлением в swift 3
  • Передача данных с контроллера вида на контроллер панели вкладок в iOS
  • ViewDidAppear не вызывается, когда модальное представление отклонено
  • При использовании контроллера навигации и панели вкладок, почему makeMove срабатывает только один раз?
  • Общие сведения о вложенности контроллера View в iOS
  • Swift 2.1 - Доступность подключения к Интернету AlertController, 4G не распознается
  • Класс не имеет инициализаторов: Swift Error
  • перезагрузка контроллера просмотра swift
  • Как создать файл контроллера вида после создания нового контроллера представления?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.