Наличие отдельных ViewController занимает место DetailViewController в SplitView - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть splitView. Левая сторона (MasterViewController) - это таблица, заполненная объектами, скажем, A, B, C, D, каждая в своей ячейке. Поэтому, когда выбраны A или B, я хочу, чтобы правая часть splitview вызывала DetailViewController. Но C и D я хочу, чтобы правая сторона выводила свои собственные отдельные контроллеры представления вместо DetailViewController. Здесь я сталкиваюсь с проблемами.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showDetail" {
        if let indexPath = tableView.indexPathForSelectedRow {
            let object = dailyAgenda[indexPath.row]
            let controller = (segue.destination as! UINavigationController).topViewController as! DetailViewController
            controller.detailItem = object
            if object == "A" {
                controller.textDescription = "This is A"
            }
            else {
                controller.textDescription = indepthDescript[indexPath.row]
            }
        }}
    if segue.identifier == "CSegue" {
        let controller = (segue.destination as! UINavigationController).topViewController as! CViewController
    }
    if segue.identifier == "DSegue" {
        let controller = (segue.destination as! UINavigationController).topViewController as! DViewController
    }}
    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if let indexPath = tableView.indexPathForSelectedRow {
        let object = dailyAgenda[indexPath.row]
        if object == "C" {
            self.performSegue(withIdentifier: "CSegue", sender: self)
        }
        if object == "D" {
            self.performSegue(withIdentifier: "DSegue", sender: self)
            }
        else {
            self.performSegue(withIdentifier: "showDetail", sender: self)
        }}}

Каждый раз, когда я запускаю его, A и B работают, но когда я пробую C или D, я получаю ошибку здесь

enter image description here

Под segue.identifier == "showDetail". Я не могу понять, почему C и D вызывают идентификатор showDetail. Любая помощь или объяснение будет принята с благодарностью. Это раскадровка.

enter image description here

...