2012-01-06 6 views
4

Я пытаюсь создать приложение iOS 5 с контроллером SplitView, который использует несколько подробных представлений. Вот трясь. Я пытаюсь сделать это с помощью раскадровки. Я нашел несколько учебников, объясняющих, как это сделать в предыдущих версиях Xcode, но ни одна из них не касается раскадровки.Использование нескольких подробных представлений в UISplitView с раскадровки в Xcode 4.2?

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

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

Однако кнопка, отображающая мастер-поход, исчезает во время перехода. Я считаю, что, вероятно, может предотвратить это с помощью этого метода:

  • (аннулируются) prepareForSegue: (UIStoryboardSegue *) переход отправителя (идентификатор) отправитель

К сожалению, я не знаю точно, что код, чтобы поместить его, чтобы кнопка не исчезла. Нужен ли мне каждый контроллер детали как делегат для мастера?

Кто-нибудь получил несколько подробных просмотров для работы с использованием раскадровки, и если да, то можете ли вы указать мне направление хорошего учебника? Большое вам спасибо за помощь!

ответ

3

Я столкнулся с аналогичной ситуацией и проверил ссылку на raywenderlich.com. Однако я нашел управление делегатом splitview слишком сложным, и это затрудняет повторное использование между iPhone и iPad. Мое решение состоит в том, чтобы создать DetailContainerViewController в качестве контроллера правого бокового обзора. И добавьте контроллеры представления, которые будут отображаться с правой стороны в качестве контроллеров дочерних представлений контроллера контейнера. Таким образом, только DetailContainerViewController должен реализовать делегат SplitView. Поэтому нет необходимости беспокоиться о делегате.

Посмотрите на пример кода, я написал на GitHub:

https://github.com/raoying/SplitView-Sample