3

My root view controller - это UISplitViewController, который имеет UITableViewController в качестве главного контроллера. На iPhone (компактная ширина) он выглядит как UINavigationController.iOS8 UISplitViewController: как переключиться на главный вид в компактном окне ширины?

master

Нажмите на ячейку, чтобы показать подробный вид контроллер

detail

Нажатие кнопки корзины будет удалить текущую запись. Моя проблема в том, как после этого вернуться к главному виду? Поскольку это UISplitViewController, он не может вывести текущий контроллер представления, как это делает UINavigationController.

+0

любое обновление? нет? –

ответ

4

У меня была подобная проблема и, наконец, нашли решение. Насколько я понимаю, при компактной ширине контроллер детальной навигации становится контроллером представления главного навигационного контроллера. Итак, все, что вам нужно сделать, это:

  1. Определите, существует ли только один вид, свернув сбойное свойство контроллера разделенного представления. Если он не рухнул (например, на iPad), вы уже показываете представление таблицы в дополнение к подробному представлению.

  2. Если он рухнул (например, на iPhone), обратитесь к главному навигационному контроллеру через контроллер детальной навигации и попросите его подключиться к контроллеру корневого представления, который в этом случае будет вашим контроллером просмотра таблицы.

Это код, который я использую в контроллере подробного представления. В вашем случае, я думаю, вам просто нужно добавить этот код к действию кнопки в контроллере подробного представления:

if splitViewController!.collapsed { 
    let detailNavController = parentViewController as UINavigationController! 
    let masterNavController = detailNavController.parentViewController as UINavigationController! 
    masterNavController.popToRootViewControllerAnimated(true) 
} 

Удачи!

Смежные вопросы