comment intégrer le controller de navigation dans une vue par programmation?

J'ai un controller de vue qui est mon HomeViewController, et j'ai une binding modale entre eux.

C'est le HomeViewController:

import "HomePageViewController.h" #import "CreatePageViewController.h" #import "StackTableViewController.h" #import "PopUpView.h" @interface HomePageViewController () @property (nonatomic, strong) IBOutlet UIButton *toggleButton; @property (nonatomic, strong) CreatePageViewController *modalTest; @property (nonatomic, strong) PopUpView *popup; @end @implementation HomePageViewController -(UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent; } -(void)viewDidLoad { [super viewDidLoad]; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:Nil]; _modalTest = [storyboard instantiateViewControllerWithIdentifier:@"ModalTest"]; [_toggleButton addTarget:self action:@selector(go) forControlEvents:UIControlEventTouchUpInside]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(hide) name:@"HideAFPopup" object:nil]; } -(void)go { _popup = [PopUpView popupWithView:_modalTest.view]; [_popup show]; } -(void)hide { [_popup hide]; } - (IBAction)pushToNextViewController:(id)sender { StackTableViewController *vc = [[StackTableViewController alloc]init]; [self presentModalViewController:vc animated:YES]; } -(void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } @end 

Je veux append un controller de navigation à StackTableViewController … c'est juste une vue de table et je veux qu'il ait un controller de navigation, comment dois-je faire cela?

Aussi, pourquoi xcode me dit que ma méthode modale presentModalViewController est obsolète?

tnx

Créez une nouvelle instance de UINavigationController , avec votre StackTableViewController tant que rootViewController . Présentez ensuite le controller de navigation:

 - (IBAction)pushToNextViewController:(id)sender { StackTableViewController *vc = [[StackTableViewController alloc]init]; UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:vc]; [self presentViewController:navCtrl animated:YES completion:nil]; 

}

Notez que presentModalViewController:animated: est obsolète car il a été remplacé par presentViewController:animated:completion: