Всегда ли initWithNibName вызывается всегда, когда программно или IB?
Пример:
У меня есть два viewController, один с именем PhotoViewController, другой с именем ViewController.PhotoViewController создает представление программно, но без комментария initWithNibName.
Вот мой PhotoViewController.m:
- (void)loadView
{
NSLog(@"loadView in PhotoView");
UIView *view = [[UIView alloc] initWithFrame:[UIScreen
mainScreen].applicationFrame];
[view setBackgroundColor:[UIColor redColor]];
self.view = view;
[view release];
}
// Loading views from a nib file.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
NSLog(@"PhotoViewController initWithNibName=%@",nibNameOrNil);
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
Вот мой вызов в ViewController.m
- (void) doSearchFlickr
{
PhotoViewController *pController = [[PhotoViewController alloc]init];
[self.view addSubview:pController.view];
[pController release];
}
Затем я вижу что-то, что смущает меня в журнале:
2011-10-23 10:52:52.151 TableViewPG[1192:b303] PhotoViewController initWithNibName=(null)
2011-10-23 10:52:52.153 TableViewPG[1192:b303] loadView in PhotoView
Согласно ViewControllerPGforiPhoneOS на стр. 30, если я переопределяю loadView программно, initWithNibName не должен вызываться.
Есть ли какой-либо недостаток (с) по моей логике?