Я создал рабочее приложение, используя раскадровку Master-Detail, а затем решил переместить поиск на новую страницу перед страницей просмотра таблицы.Рекомендуемая структура для добавления контроллера быстрого просмотра до диспетчера навигации в таблице.
Storyboard http://www.photoandgem.com/storyboard.jpg
Часть проблемы является одной из структуры:
Если у меня есть новый контроллер навигации, который встраивает контроллер представления поиска?
Или должен быть встроен контроллер просмотра в исходный (настольный) навигационный контроллер?
Или какая-либо другая структура?
Как есть, я установил контроллер представления поиска в качестве исходного контроллера представления, но код неверен в AppDelegate.swift, так что я получаю сообщение об ошибке
«Не удалось ввергнуть значение типа ' searcher.searchViewController '(0x10bd12dc8) в' UISplitViewController '. "
Я знаю, что он должен иметь встроенный контроллер просмотра, но я не знаю, как это исправить.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let splitViewController = self.window!.rootViewController as! UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem
splitViewController.delegate = self
return true
}
Я прочитал всю документацию компании Apple, а также несколько учебных пособий, а также бесчисленные вопросы/ответы на StackOverflow, и у меня нет никаких проблем с Master-Detail структурой без нового контроллера зрения поиска, но я не понимаю достаточно для продолжения.