Я смог достичь этого, создав главный контроллер вида, который содержал контроллер навигации и любой из представлений подслоя.Я следовал тому же общему принципу, что и в образце Apple DrillDownSave , за исключением того, что пропустил объект Window и объект AppDelegate в xib-файле.Вместо этого я использовал UIView, так как я использовал UIViewController для управления всем.
Все, что мне нужно было сделать после этого, это создать экземпляр контроллера основного вида в том виде, в котором я хотел разместить его, и установить его фреймтуда, где я хотел, чтобы это появилось в этом представлении.Одна интересная проблема, с которой я столкнулся, заключалась в том, что навигационный контроллер хотел расширить ширину экрана, даже если его родительский вид был установлен меньше.Все, что мне нужно было сделать, это установить его ширину в кадре, в то же время я установил рамку его основного вида, и все сработало хорошо.
Здесь много кода, но основной макет выглядит так:
- Some View Controller
- Master View Controller для элемента навигации (устанавливается как свойство «некоторого» контроллера представления и создается / позиционируется / добавляется как подпредставление в его viewDidLoad)
- UINavigationController (в xib, как пример Apple)
- Контроллер первого уровня с UITable
- Контроллер второго уровня с UITable
- Контроллер представления третьего уровня с UITable
- Представление местозаполнителя в xib для упрощения выравнивания мастера элементов навигации
* примечание- Я не использовал вид листа, как пример Apple, потому что он мне не нужен для моих целей
Я не знаю, объяснил ли я это очень хорошо, поэтому, если вам нужны дополнительные разъяснения, дайте мне знать.Надеюсь, это поможет!