Я бы хотел запустить модальный контроллер представления, как это делается с 'ABPeoplePickerNavigationController', и это без необходимости создания контроллера навигации, содержащего контроллер представления.
Если сделать что-то подобное, откроется пустой экран без заголовка для панели навигации, и для представления не будет загружен связанный файл пера, хотя я вызываю initWithNibName при вызове init.
Мой контроллер выглядит так:
@interface MyViewController : UINavigationController
@implementation MyViewController
- (id)init {
NSLog(@"MyViewController init invoked");
if (self = [super initWithNibName:@"DetailView" bundle:nil]) {
self.title = @"All Things";
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"All Things - 2";
}
@end
При использовании контроллера AB все, что вы делаете:
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
[picker release];
ABPeoplePickerNavigationController объявлен как:
@interface ABPeoplePickerNavigationController : UINavigationController
Другой способ создать модальное представление, как предлагается в Руководстве по программированию View Controller от Apple для
iPhone OS ':
// Create a regular view controller.
MyViewController *modalViewController = [[[MyViewController alloc] initWithNibName:nil bundle:nil] autorelease];
// Create a navigation controller containing the view controller.
UINavigationController *secondNavigationController = [[UINavigationController alloc] initWithRootViewController:modalViewController];
// Present the navigation controller as a modal view controller on top of an existing navigation controller
[self presentModalViewController:secondNavigationController animated:YES];
Я могу создать его таким образом (пока я изменяю MyViewController для наследования от UIViewController вместо UINavigationController). Что еще я должен сделать с MyViewController для запуска так же, как ABPeoplePickerNavigationController?