Je voudrais lancer un contrôleur de vue modale comme on le fait avec 'ABPeoplePickerNavigationController' et sans avoir à créer de contrôleur de navigation contenant le contrôleur de vue. Faire quelque chose de similaire donne un écran vide sans titre pour la barre de navigation et aucun fichier nib associé n'est chargé pour la vue même si j'appelle le initWithNibName lorsque le 'init' est appelé.Lancement d'un UINavigationController modal
Mon contrôleur ressemble à:
@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
Lorsque vous utilisez le contrôleur AB, tout ce que vous faites est:
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentModalViewController:picker animated:YES];
[picker release];
ABPeoplePickerNavigationController est déclarée comme:
@interface ABPeoplePickerNavigationController : UINavigationController
L'autre façon de créer une vue modale comme suggéré dans le 'View Controller Programming Guide' d'Apple pour 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];
je peux créer cette belle façon (aussi longtemps que je change le MyViewController d'hériter de UIViewController au lieu de UINavigationController). Quoi d'autre devrais-je faire à MyViewController pour lancer de la même manière que ABPeoplePickerNavigationController?