I have a custom UIView
(MyCustomUIView
) which is built using Interface Builder. I'd like to place this custom view in MyViewController
's view, which is also designed using IB. I've placed an UIView
as a subview in MyViewController
's XIB and set it's class to MyCustomUIView
. The problem is, when I run the code, only a blank view appears. (When I instantiate MyCustomUIView
in code, it displays well.)
I'm only overriding the initWithFrame:
method the following way in MyCustomUIView.m
:
- (id)initWithFrame:(CGRect)frame
{
[[NSBundle mainBundle] loadNibNamed:@"MyCustomUIView" owner:self options:nil];
self = self.view;
return self;
}
What should I do to make the view load properly? How should initWithCoder:
look like?
You are correct. IB uses initWithCoder. initWithCoder should look very similar to your other init methods:
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
// CUSTOM INITIALIZATION HERE
}
return self;
}
Once you assign your class within IB, you won't need to instantiate it from the bundle unless I'm misunderstanding your intention.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With