Чтобы получить содержимое xib-файла, вы должны сначала загрузить его, отправив loadNibNamed:owner:options:
сообщение классу NSBundle.
Предположим, у вас есть подкласс UIView с именем CustomView и файл CustomView.xib.В xib-файле у каждого представления есть тег.Ваш файл .h будет выглядеть так:
@interface CustomView : UIView
@property (nonatomic, assign) UILabel *someTextLabel; //use assign in order to not to override dealloc method
@end
.m
@implementation CustomView
- (id)init {
self = [super init];
if (self) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil];
[self addSubview:[topLevelObjects objectAtIndex:0]]; //this object is a CustomView.xib view
self.someTextLabel = (UILabel *)[self viewWithTag:5]; //consider you have a UILabel on CustomView.xib that has its tag set to 5
}
return self;
}
@end
Это как использовать .xibs для ваших пользовательских подклассов UIView.Если ваше приложение похоже на чат, вам придется добавлять их программно.
Что касается лучшего способа отправки сообщений между двумя пользовательскими представлениями, вам нужно создать слабую ссылку друг на друга в каждомиз них.
в одном
@property (nonatomic, assign) CustomView *customView;
в другом
@property (nonatomic, assign) AnotherCustomView *anotherCustomView;
и просто отправлять им сообщения, когда что-то даже происходит
- (void)buttonPressed {
[customView handleButtonPressedEvent];
}
Пустья знаю, если это ясно.