Пользовательский UISplitViewController? - PullRequest
0 голосов
/ 05 октября 2011

Я хочу получить эффект от UISplitViewController, однако я не использую шаблон разделенного представления.

Это относительно легко достичь без шаблона? А с использованием обычного UIViewController?

То, что мне нужно, это обычный размерный и позиционированный UITableView, который затем имеет обычный размерный детальный вид, который затем, конечно, переходит в поповерный и подробный вид при портретной ориентации.

Надеюсь, вы можете помочь, спасибо.

Ответы [ 3 ]

0 голосов
/ 05 октября 2011

Делая это без Interface Builder, вы создадите класс UIViewController. В методе viewDidLoad этого класса создайте UIView или UITableView с источником кадра, где вы хотите, и нужного размера. (Отпустите его в методе viewDidUnload.) Затем установите self.view UIViewController, чтобы он указывал на это новое представление.

self.view = [[UIView alloc] initWithFrame:...];    // edit - added in response to your question

Если вы создали UIView, тогда вы захотите поместить свой UITableView в это новое представление. (Этот подход позволяет вам добавлять дополнительные элементы в контейнер UIView, если вам нужно.)

Убедитесь, что ваш UIViewController придерживается протоколов UITableViewDelegate и UITableViewDataSource. Добавьте делегат и методы источника данных, и вы должны быть готовы.

Этот новый вид может охватывать другие виды, или вы можете изменить размер других видов, чтобы соответствовать ему. Вам нужно только установить кадры в соответствии с тем, что вы хотите с ними сделать.

Существуют некоторые ограничения, если вы используете UITableViewController, поэтому многие люди рекомендуют вместо этого использовать UIViewController. как я описал выше. Вы можете получить дополнительную информацию по этой теме в Google.

0 голосов
/ 06 октября 2011

Да. Вы можете сделать это довольно легко. Просто используйте делегатов для передачи сообщений между левым и правым боковыми видами (корень и деталь). Например, метод табличного представления didSelectRowAtIndexPath может использоваться вместе с делегированием для передачи сообщения в подробный вид справа. Нажмите на ячейку на левой таблице, покажите ее текст в виде метки на правой стороне. Это простой пример. И да, вы можете обрабатывать повороты и отправлять вид слева в UIPopoverController, что дает подробный вид полноэкранного режима в портретной ориентации.

Также попробуйте MGSplitViewController . Он дает вам много других опций настройки на контроллере с разделенным видом.

0 голосов
/ 05 октября 2011

Просто создайте новый временный Xcode-проект из этого шаблона и судите сами, если вам сложно, принять свой (настоящий) код.

...