XIB对象未加载到屏幕上

时间:2015-11-07 19:32:52

标签: ios objective-c xcode

我已经设置了一个XIB自定义文件并作为子视图添加到视图控制器,它运行良好。这是我的initWithFrame,我试图在XIB中设置一些属性值,但对象似乎没有在视图上显示。

-(instancetype)initWithFrame:(CGRect)frame {

self = [super initWithFrame:frame];

if(self) {
    [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];
    self.firstName.text = @"John";
    self.lastName.text = @"Michel";
    self.gender.text = @"Male";
}

return self;
}

我已经检查了调试器并设置了属性标签,因此它正在这方面工作,但在可视化调试器中,标签不会显示。

visual

1 个答案:

答案 0 :(得分:0)

当您调用initWithFrame时,它将不会从XIB加载。如果要从XIB加载它。你应该在视图控制器中执行此操作:

MyView *myView = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];

如果要访问视图控制器中的标签,则应执行以下操作:

myView.firstName.text = @"John";
myView.lastName.text = @"Michel";
myView.gender.text = @"Male";

如果你想在课堂上访问它们。你应该在班上这样做:

- (void)awakeFromNib {
    self.firstName.text = @"John";
    self.lastName.text = @"Michel";
    self.gender.text = @"Male";
}