Могу ли я создать подкласс для представления, созданного с помощью Interface Builder? - PullRequest
0 голосов
/ 09 июля 2009

У меня есть представление, которое я построил в Интерфейсном конструкторе с табличным представлением и связанными выходами и т. Д., Чтобы отобразить список элементов. Нажатие на элемент поднимает детали этого элемента.

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

Кажется, что естественным было бы сделать подкласс исходного контроллера представления и создать макет второго представления, используя IB. Однако, прежде чем я приступлю к этому, я задаюсь вопросом, возможно ли это / рекомендуемая практика? Признает ли IB IBOutlets в суперклассе и позволит ли мне их подключить?

Ответы [ 2 ]

2 голосов
/ 09 июля 2009

IB распознает IBOutlets, определенные в суперклассе.

Вы делаете это постоянно: выход для представления в UIViewController определен в суперклассе, который вы подклассуете для каждого из ваших контроллеров представления.

1 голос
/ 09 июля 2009

ПГБ правильно. IB распознает торговые точки в суперклассе

Что касается того, является ли наследование контроллера хорошей или плохой идеей, я не уверен. Apple предлагает создать подклассы NSArrayController, чтобы изменить поведение сортировки / фильтрации. Контроллер представления отличается от контроллера массива, но я осмелюсь сказать, что создание подклассов контроллера представления, вероятно, является правильным решением.

...