Мне сложно выбрать контроллер вида, отображающий подробный вид в контроллере с разделенным изображением. Похоже, что есть некоторый вызов по умолчанию для контроллера вида позади showDetail
, но я не могу найти где. Когда контроллер разделенного представления загружается, он показывает DetailViewController
как деталь в расколе моих попыток установить его на OverviewViewController
. showDetail
segue не вызывается при загрузке, однако он по-прежнему является значением по умолчанию.Segue to DetailViewController (SplitViewController)
Когда я переопределил didSelectRowAtIndexPath
на главном устройстве, я вижу мерцание, когда он на короткое время устанавливает DetailViewController
перед установкой .
Вот мой код:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.navigationItem.leftBarButtonItem = self.editButtonItem()
if let split = self.splitViewController {
let controllers = split.viewControllers
self.detailViewController = (controllers[controllers.count-1] as! UINavigationController).topViewController as? OverviewViewController
}
}
// MARK: - Segues
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("did select row")
NSOperationQueue.mainQueue().addOperationWithBlock {
self.performSegueWithIdentifier("showOverview", sender: self)
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
print("segue to showDetail")
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController
controller.injectOrder(gobl_meal_orders[indexPath.row])
controller.detailItem = object
controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
}
}else if segue.identifier == "showOverview"{
print("show overview called")
}
}
Где находится эта скрытая предустановка зрения контроллера?