Как программно настроить несколько пользовательских UIViewControllers под одним контроллером центрального представления? - PullRequest
1 голос
/ 03 сентября 2010

Будучи новичком в Xcode и Objective-C, мне трудно разобраться в конструкторе интерфейсов и Objective-C при выполнении действий, следующих базовому шаблону. Я создал подкласс UIViewController, который я хочу создать несколько раз, чтобы создать сетку, в которой каждая строка контролируется экземпляром этого класса. Таким образом, будет один корневой контроллер представления (с навигацией и т. Д.), Который должен включать / генерировать все экземпляры пользовательского субконтроллера представления.

Теперь, что было бы лучшим способом сделать это? Все примеры, которые я могу найти, касаются навигации, где одно представление должно заменить другое, но я хочу, чтобы все контроллеры представления были видны на одной и той же «странице». Нужно ли вообще создавать файл пера для пользовательского контроллера? Я также как-то думал об использовании UITableView, но вставлял свой собственный view-контроллер в каждую строку.

Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 03 сентября 2010

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

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

  • Что делает ваш пользовательский контроллер? В основном это меняет внешний вид соответствующей строки сетки? Если так, возможно, было бы более уместно подклассировать сам UIView.

  • Если этот объект действительно ведет себя как контроллер, а не как представление, рассмотрите реализацию его как подкласса NSObject, а не как подкласс UIViewController. UIViewController для вашего экрана может захватывать события и делегировать их соответствующему пользовательскому объекту контроллера, или ваши пользовательские представления могут захватывать свои собственные события и уведомлять связанные с ними контроллеры об этих событиях напрямую, используя шаблон делегата.

  • Если вы уверены, что у вас есть веская причина для реализации этих объектов в качестве подклассов UIViewController, ознакомьтесь с моим ответом на этот вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...