2017-01-07 2 views
1

Я создаю простой пользовательский UIView с xib-файлом, я подключаю xib-представление к моему классу, а затем привязываю свои IBOutles к subviews, после этого я создаю представление с initWithFrame, и я добавляю его программно мой родитель видпользовательский UIVIew с nib subviews nil

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"AddAlarmView" owner:self options:nil]; 
     _scrollView = (UIScrollView *)[objects objectAtIndex:0]; 
     [self addSubview:_scrollView]; 

    } 
    return self; 
} 

проблема заключается в том, что все подвиды равны нулю .... если я пытаюсь получить customView.textFeild1 это ноль .... почему? где ошибка?

+0

Ваш объект ScrollView находится в xib или UIView находится в xib? –

ответ

0

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

- (id)initWithFrame:(CGRect)frame 
{ 
    NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"AddAlarmView" owner:self options:nil]; 
    self = (YourClassName *)[objects objectAtIndex:0]; 
    self.frame = frame; 
    return self; 
} 

Вам не нужно добавлять подвиды снова ваши IBOutLets. Они уже являются subView вашего представления в xib-файле. Просто загрузите этот файл xib и назначьте его себе и обновите свой кадр в соответствии с параметром.

+0

Я решил таким образом: self = [[[NSBundle mainBundle] loadNibNamed: @ "AddAlarmView" владелец: self опции: nil] lastObject]; – kikko088