Je suis un peu confus où votre problème est. Ce que vous essayez de faire est possible et devrait être simple. Si votre problème est que la vue suivante n'est pas poussée c'est parce que dans popoverController vous n'avez pas accès à self.navigationController
. Solution si simple, créez une variable UINavigationController et passez navigationController à votre popover ou utilisez des notifications pour transmettre quelle vue repasser à votre AppDelegate.
EDIT
Vous pouvez l'utiliser pour écouter les notifications:
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(popOverViewControllerSelected:) name:@"popOverViewSelectedViewToPush" object:someObjectTellingYouWhatViewToPush];
Ensuite, utilisez cette option pour envoyer les notifications:
[[NSNotificationCenter defaultCenter] postNotificationName:@"popOverViewSelectedViewToPush" object:@"ViewController1"];
Le sélecteur serait le nom de votre fonction (Je viens de mettre un nom descriptif "popOverViewControllerSelected") et l'objet devrait être des informations sur ce que viewController à pousser (c.-à-d. 1,2,3 ou @ "view1"). Ensuite, vous avez besoin:
- (void)popOverViewControllerSelected:(id)sentObject
{
// If your passing an NSNumber could use a switch
switch ((int)sentObject) {
case 0:
//Push This view
break;
case 1:
//Push that view
break;
case 2:
//Push someother view
break;
default:
break;
}
}
L'autre façon dont je parlais est en vous popOverViewController.h ajouter
@interface .........
{
UINavigationController *navController;
}
@property (nonatomic, retain) UINavigationController *navController;
En vous popOverViewController.m ajouter:
@synthesize navController;
Ensuite où vous ajoutez le popOverViewController ajoutez simplement:
[popOverViewController setNavController:self.navigationController];
Et maintenant dans votre PopOverViewController vous pouvez appeler:
[navController pushViewController:someViewController animated:YES];
Mais je recommande de faire la première option.
Vous ne devriez pas avoir besoin de créer une sous-classe de PopOverController, sauf si vous créez votre propre interface utilisateur. – twilson
Regardez la documentation d'Apple Human Interface Guidelines d'Apple, elle devrait vraiment être parfaitement adéquate pour réaliser ce que vous voulez. Cela semble assez trivial, à moins que je ne manque quelque chose? – twilson