2016-05-26 5 views
0

У меня есть настройка приложения мастер-детали в контроллере с разделенным представлением, который является стандартным стандартным кодом Swift. При первоначальной схеме мастер-детали она работает так, как ожидалось.Вторая схема Master-Detail не корректно загружается в SplitViewController

Я хочу загрузить второй мастер с его второй деталью в левой и правой панелях контроллера разделенного вида. С одним основным исключением он работает как ожидалось. Исключением является то, что второй детальный вид охватывает только второй мастер в левой панели. Вторая деталь не загружается в правой панели.

Вот проблема графически. Первая схема мастер-деталь: enter image description here

Затем, когда второй мастер запускается: enter image description here

Затем, когда клетка касании во втором мастера: enter image description here

я загрузить второй мастер из кнопку MVC1 с простым раскадровкой, хотя я сделал это программно как делегат. Ничего не работало, чтобы показать мастер 2 слева и деталь 2 справа. Во всех случаях я пробовал segue как Show и как Show Detail. Я не вижу различия в поведении приложения.

enter image description here

Для Segue от MVC2 к DVC2:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if segue.identifier == "showKeywordDetail" { 

     if let indexPath = self.tableView.indexPathForSelectedRow { 

      let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as! Keyword 
      let controller = segue.destinationViewController as! KeywordDetailViewController 

      controller.detailItem = object 
      //controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem() 
      controller.navigationItem.leftItemsSupplementBackButton = false 
      controller.sentBy = "showKeywordDetail" 

     }//if let indexPath 

    } else if segue.identifier == "addKeyword" { 

// гроздь больше кода для других случаев

}

Любое руководство будет оценено.

ответ

0

Ключом к этому решению, похоже, является создание отдельной «несвязанной» схемы основных деталей.

На оригинального мастера, поместите кнопку с действием:

@IBAction func doCodeKeywordPush(sender : AnyObject) { 
self.navigationController!.pushViewController(self.storyboard!.instantiateViewControllerWithIdentifier("KeywordTableViewController") as! UITableViewController, animated: true) 

}//doCodeKeywordPush 

Затем сделать второй схемы мастер-деталь автономным установлен в раскадровке. Вставьте второй контроллер главного вида в контроллер навигации. Создайте segue из второго главного tableViewCell во второй контроллер подробного представления. Между кнопкой и второй группой не должно быть никакого перехода или соединения.

Наконец, сконфигурируйте второй мастер на второй подробный сегмент, как и любую другую настройку.