Как получить контроллер верхнего уровня, когда представлен 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 } } 
  • Изменение контроллера корневого представления после загрузки приложения iOS.
  • Как обновить другие контроллеры представлений на основе действия из базового представления
  • iOS - childViewController не принимает события
  • Всегда получайте предупреждение о наличии памяти при использовании UIImagePicker для камеры
  • Как перезапустить приложение ios
  • Как вернуться назад, чтобы указать viewController из navigationController (viewControllers / stack)?
  • Разница между presentModalViewController и presentViewController?
  • перезагрузка контроллера просмотра swift
  • Swift - представить другой контроллер просмотра с навигационной панелью
  • Передача данных с контроллера вида на контроллер панели вкладок в iOS
  • Возврат к корневому представлению в IOS
  • Interesting Posts

    Дополнительные блокировки в протоколах Swift

    Почему UIView вызывает как init, так и initWithFrame?

    Как определить, выполнил ли пользователь скриншот с домашним источником питания в iOS?

    Создание titleView программно с ограничениями (или, как правило, построение представления с ограничениями)

    уведомления о нажатии на ящик – недействительные «aps-environment» пробовали все решения, которые я видел в Интернете?

    Свойства и методы iOS 6 iAd устарели

    Маршрутное сенсорное событие для просмотра под UIScrollView, если жестом салфетки не распознается – например, приложение iPad Twitter

    Как использовать AVAssetResourceLoader?

    iOS создает NSLayoutConstraint программно для содержимого ячейки таблицы

    Рисование MKMapView Overlay, как Google Maps Directions

    NSFetchedResultsController не сортирует по зашифрованным атрибутам

    Разный размер шрифта на одной этикетке?

    UniqueIdentifier теперь вызывает отклонения от Apple

    IOS StoryBoard несколько Segue из TableCell

    представленный лист модальной формы над модным листом страницы

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.