Примечание: Я не говорю о SplitViews Master-Detail!Настройка главной страницы для сцен
Возникает вопрос, похожий на этот вопрос (Master page concept in Iphone development), но вопрос касается только стандартных функций, а не самой компоновки. Кроме того, ответы только показывают, как избежать дублирования кода, но вам все равно нужно связать IBActions на каждой сцене. Возможно, мы можем расширить связанный вопрос и найти несколько лучших решений :-)
Итак, я бы хотел определить главную страницу для всех сцен/контроллеров представления в моем приложении. Это обычная задача, например, в веб-разработке (т. Е. ASP.NET Masterpages).
Основная страница будет включать в себя фактический макет (цвет фона, где заголовок идет, где идет контент и т. Д.) И стандартные функции, присутствующие во всех сценах (открыть меню, вернуться, открыть страницу справки и т. Д.),
Использование интерфейса Builder (с или без раскадровки), что было бы лучшим способом для этого?
Вот мои идеи:
Вариант 1: Подкласс UIViewController для стандартных функций, CopyPaste общей компоновки в каждой сцене/ViewController.
Преимущества: Достаточно проста в использовании, просто скопируйте все элементы управления, установите родительский класс в IB и подключите стандартные кнопки функций.
Недостатки: утомительно, если у вас есть множество сцен, вы можете легко забыть подключить стандартные функции. Если по какой-либо причине мастер-макет меняется, вы ввернуты.
Вариант 2: Подкласс UIViewController, добавить макет программно-то в viewDidLoad
, где вы также настроить событие нацеливает
Преимущества: И расположение и особенности обрабатываются в одном месте и легко изменчива.
Недостатки: вам необходимо настроить программный код, который несовместим, если вы используете IB везде. Вы не видите макет макета в IB, так что вы должны «представить» его там, когда настраиваете остальную часть сцены в IB. Без раскадровки вы можете использовать XIB только для разработки контента, но тогда у вас никогда не будет «целой картинки» в IB. Кроме того, это не работает с раскадровки.
Оба варианта не очень элегантны для меня. Каков ваш подход к этому (это должно быть общей проблемой!)?
Ваша идея с UICollectionView умна. Однако в iOS5/6 есть UIContainerViews, которые, я думаю, делают именно то, что я хочу. UICollectionView привел меня туда, поэтому я принимаю ваш ответ. Благодаря! – JiaYow