Когда мое приложение запускается впервые на симуляторе iPad, таблица mainVC загружает и отображает данные из моей модели, но диспетчер подробных представлений не работает. Он загружает и отображает данные из раскадровки. Я бы хотел, чтобы он отображал первый элемент из главного меню (например).Как загрузить подробный контроллер просмотра (с раздельного просмотра) при запуске в режиме быстрого?
Я видел это в учебнике RayW из метода AppDelegate, didFinishLaunchingWithOptions, но они не использовали стандартный код разбитого вида, а скорее воссоздали его с нуля с некоторым изменением от кода по умолчанию. Это, как они это сделали:
let splitViewController = self.window!.rootViewController as! UISplitViewController
let leftNavController = splitViewController.viewControllers.first as! UINavigationController
let masterViewController = leftNavController.topViewController as! MasterViewController
let detailViewController = splitViewController.viewControllers.last as! DetailViewController
let firstMonster = masterViewController.monsters.first
detailViewController.monster = firstMonster
return true
Ниже по умолчанию код плюс (после пустой строки) попытка согласовать код по умолчанию с указанным выше способом.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
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
let leftNavController = splitViewController.viewControllers.first as! UINavigationController
let masterViewController = leftNavController.topViewController as! MasterViewController
let detailViewController = navigationController.topViewController as! DetailViewController
let firstRecord = masterViewController.records.first
detailViewController.record = firstRecord
return true
}
В моих первоначальных попытках я бросал вокруг неправильных контроллеров, но приведенный выше код по крайней мере, компилируется и работает, но он не загружает первую запись в detailVC.
Это правильный подход, и я просто что-то пропустил, или есть другой способ сделать это?