0

Я подклассы UIViewController (назовем его ParentViewController) и добавили кучу свойств и методов - IBOutlets и IBActions и такие - что я хочу создать подкласс для ChildViewControllerA, ChildViewControllerB, ChildViewControllerC и т.д.ios - Где подключить выходы в подклассе UIViewController?

Мой глупый вопрос является , так как все эти свойства определены в интерфейсе ParentViewController's, как я могу подключить их к интерфейсам ChildViewControllers? В моем основном файле iOS 7 раскадровки у меня есть ViewController для каждого из ChildViewControllerA, ChildViewControllerB, ChildViewControllerC и т. Д., Но у меня нет маленьких портов с символами плюс в их соответствующих файлах .h/.m, потому что они все в ParentViewController.h.

Есть ли что-то, что мне не хватает? Нужно ли переопределять свойства в каждом ChildViewController, чтобы иметь место, чтобы подключить их к соответствующим представлениям раскадровки?

ответ

2

Это должно работать в манере вашего описано; как я только что подтвердил.

@interface ParentViewController : UIViewController 
@property (nonatomic, weak) IBOutlet UILabel *someLabel; 
@end 

Создание подклассов ParentViewController и устанавливать пользовательские классы в раскадровки редакторе ChildViewControllerA и ChildViewControllerB, например, так:

enter image description here

Выпускные отверстия должны быть там, если это соответствует тому, что вы делает.

enter image description here

Короче говоря, вам не нужно переопределить торговые точки, которые определены ранее в иерархии объектов.

+0

Благодарим за чистый скриншот! Это может быть несвязано, но по какой-то причине UIImageViews, которые я подключил (между nib для ChildViewControllerA и ChildViewControllerA.h), не появляется. В отладчике переменная для UIImage и UILabels, похоже, не меняется, хотя Я устанавливаю (UILabel *) propA.text = * newString *. Он по умолчанию работает независимо от того, что находится в nib, когда перед тем, как я подклассифицировал его, он переписывал то, что было в nib. – Cindeselia

+0

Не уверен, что происходит там, не видя контекста кода. Есть ли вероятность, что вы делаете эти изменения до загрузки торговых точек? Вы можете реализовать 'awakeFromNib' и посмотреть. – FluffulousChimp

+0

Добавлено «я». перед именами свойств как таковыми, (UILabel *).propA.text = newString, и это решило. В более близком примечании, что мягко относится к тому, что даже в ParentViewController свойства, похоже, подключены, но по мере того, как я создаю больше ChildViewControllers, свойства, определенные в ParentViewController, не могут быть подключены ко всем представлениям nib , они могут? – Cindeselia

0

Что вы пытаетесь сделать? При попытке передать параметры на другой контроллер зрения, использовать этот метод в ParentViewController:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    [segue.destinationViewController yourInitializationMethod:withProperties]; 
} 
0

Логика довольно проста, если вы наследуете любой класс, Outlets будут доступны для всех других классов, которые наследуют его. Напр.

В вашем случае у вас есть Parent, и в нем у вас есть Outlet say ButtonA. Теперь другие классы Child1 и Child2 наследуется Parent они могут получить доступ к ButtonsA, но если вы создаете какой-либо выход к Child1 и Child2 и если никакой другой класс не наследует его, он не будет доступен для любого, и он не будет доступен для Parent а .. Если вы хотите получить доступ к свойствам, которые вы можете иметь Child Controller как собственность в любом из ваших классов.

Надеюсь, это поможет.

Смежные вопросы