2014-02-05 3 views
0

У меня есть класс A, содержащий xib с некоторыми кнопками и UITextField и класс B, который содержит tableView Я хочу добавить класс A в заголовок таблицы.Как подключить IBOutlet от класса к другому классу

Я импортировать XIB из класса А в класс В, используя [[[NSBundle mainBundle] loadNibName: owner:self options:nil] objectAtIndex:0];

Я просто хочу, чтобы отразить кнопки и TextView действия внутри ClassB. В ClassB у меня есть некоторые методы делегата UITextfield, которые я ожидаю вызывать при вводе некоторого текста в uitextfield, определенного и объявленного в ClassA (определение свойства xib + в файле .h).

Класс .h:

//properties are set from xib file ClassA.xib 
@interface ClassA : UIView 

@property (unsafe_unretained, nonatomic) IBOutlet UIButton *addC; 
@property(strong, nonatomic) IBOutlet UITextField *nText; 

@end 

Класс Bh

#import "ClassA" 
@interface ClassB : UIViewController <UITextFieldDelegate, UITableViewDataSource,...> 

@property (strong, nonatomic) IBOutlet UITableView *mTableView; //property set from ClassB.xib 
@property(strong, nonatomic) IBOutlet UITextField *nText_B; 
@property (unsafe_unretained, nonatomic) IBOutlet UIButton *addC_B; 

- (IBAction)addC:(UIButton *)sender; 
@end 

Я не знаю, как сделать кнопку ссылку ClassB и текстовое поле для ClassA В ClassB viewDidLoad метод я, пробовал это:

getHeader = [[ClassA alloc]init]; 
    _addC_B = [getHeader addC]; 
    _nText_B = [getHeader nText]; 
    _nText_B.delegate =self; 
    [email protected]""; 

но это не работает Я новичок в iOS на этой стороне. Благодарим за помощь

ответ

0

Вы не очень хорошо объяснили свою проблему. Классы не содержат xibs.

Если вы хотите создать часть пользовательского интерфейса в XIB и повторно использовать его, вы можете достичь этого с помощью [NSBundle loadNibNamed:owner:options:]. Лучший способ описать его части - это такие свойства, как Новаль, объясненный в его ответе. Другая возможность заключается в прикреплении представлений к свойствам «Свойства владельца файла».

+0

Я использую NSBundle loadNibName. Я просто хочу подключить IBoutlet от одного класса к другому –

+0

Я попытался создать экземпляр класса A внутри класса B в viewDidLoad, но методы делегата UITextField не вызывается, когда я ввожу некоторые входные значения в UITextField –

+0

Если вы выполните: [[ClassA Alloc] инициализации]; вы не загружаете нить. – proxi

0

вы не можете подключить IBOutlet, который размещен вне вашего класса XIB. но если вы просто хотите получить доступ к розетке из другого класса, это возможно, создав экземпляр ClassA в ClassB. а затем получить доступ к собственности, как instanceOfClassA.outletObject

+0

getHeader - это экземпляр класса A, но это все еще не решает проблему. Методы делегатов UITextField не вызывается при вводе некоторого текста внутри UITextField –

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