У вас є багато варіантів, залежно від того, як ваш клас "baseView" призначений для використання та інтеграції у вашу програму. Незрозуміло, як ви збираєтеся використовувати цей клас - оскільки подання в підкласі UIViewController або як багаторазовий модульний компонент означають створювати кілька разів у вашому додатку для використання у багатьох різних контролерах перегляду.
Якщо ваш вигляд має бути єдиним поданням у підкласі UIViewController, тоді Phonitive правильний - об’єднайте його разом із файлом .xib підкласу UIViewController та використовуйте viewDidLoad UIViewController для остаточної ініціалізації.
Але якщо ви хочете, щоб ваш клас View був підкомпонентом, який повторно використовувався кілька разів у різних контролерах подання, інтегрований або за допомогою коду, або за допомогою включення у файл .xib для іншого контролера, тоді вам потрібно реалізувати як initWithFrame: init метод, так і awakeFromNib, вирішити обидві справи. Якщо ваша внутрішня ініціалізація завжди включає деякі об'єкти з .xib, то у вашому initWithFrame вам потрібно буде завантажити .xib вручну, щоб підтримати класи "замовника", які хочуть створити ваш віджет за допомогою коду. І так само, якщо файл .xib містить ваш об’єкт, то вам потрібно буде переконатися, що ви викликаєте будь-який необхідний код для завершення з awakeFromNib.
Ось приклад того, як створити компонент підкласу UIView з дизайном інтерфейсу користувача в перо.
MyView.h:
@interface MyView : UIView
{
UIView *view;
UILabel *l;
}
@property (nonatomic, retain) IBOutlet UIView *view;
@property (nonatomic, retain) IBOutlet UILabel *l;
MyView.m:
#import "MyView.h"
@implementation MyView
@synthesize l, view;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];
[self addSubview:self.view];
}
return self;
}
- (void) awakeFromNib
{
[super awakeFromNib];
[self addSubview:self.view];
}
- (void) dealloc
{
[l release];
[view release];
[super dealloc];
}
Ось як виглядає файл nib (за винятком того, що власника файлу потрібно змінити на клас MyView).

обов’язково підключіть і вигляд, і розетки міток до власника файлу. Це воно! Шаблон для створення віджетів для повторного використання UIView.
По-справжньому акуратно в цій структурі є те, що ви можете розміщувати екземпляри об’єкта MyView в інших файлах ніб, просто розмістіть UIView у потрібному розташуванні / розмірі, а потім змініть клас в інспекторі ідентифікації (CMD-4) на MyView, і бум, у вас є екземпляр вашого віджета в будь-яких переглядах, які ви хочете! Подібно до об'єктів UIKit, ви можете реалізовувати протоколи делегатів, щоб об'єкти, які використовують ваш віджет, могли отримувати сповіщення про цікаві події та надавати дані для відображення у віджеті для його налаштування.