私はこのコードを持っています
PlaceViewController *newView = [self.storyboard instantiateViewControllerWithIdentifier:@"PlaceView"];
[self presentViewController:newView animated:YES completion:nil];
ビューを変更することはできますが、このページに戻ったときにこのビューをプッシュすると、状態が保持されます。
私はこのコードを入れようとします:
[self.navigationController pushViewController:newView animated:YES];
しかし、何もしません。
ありがとう
Objective-C:
PlaceViewController *newView = [self.storyboard instantiateViewControllerWithIdentifier:@"storyBoardIdentifier"];
[self.navigationController pushViewController:newView animated:YES];
以下の点に注意してください、
ストーリーボード識別子は正しいです。
ルートビューには、ナビゲーションコントローラーがあります。
Swift:
let newView = self.storyboard?.instantiateViewController(withIdentifier: "storyBoardIdentifier") as! PlaceViewController
self.navigationController?.pushViewController(newView, animated: true)
使用する:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"STORYBOARD_NAME" bundle:nil];
PlaceViewController *newView = [storyboard instantiateViewControllerWithIdentifier:@"PlaceView"];
[self presentViewController:newView animated:YES completion:nil];
または:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"STORYBOARD_NAME" bundle:nil];
PlaceViewController *newView = [storyboard instantiateViewControllerWithIdentifier:@"PlaceView"];
[self.navigationController pushViewController:newView animated:YES];
ストーリーボードの場合は、performSegueWithIdentifier
を次のように使用する必要があります。
[self performSegueWithIdentifier:@"identifier goes here" sender:self];
Swift 3.x
let viewController = storyboard?.instantiateViewController(withIdentifier: "storyboardIdentifier") as! UIViewController
navigationController?.pushViewController(viewController, animated: true)
デフォルトでは、Xcodeは標準のビューコントローラを作成します。まず、ビューコントローラーをナビゲーションコントローラーに変更します。メニューで「エディター」を選択し、「組み込み」を選択してから、「ナビゲーションコントローラー」を選択します。ステップ1.メインストーリーボードを選択します。ステップ2. Xcodeアプリケーションの上部にある「エディター」をクリックします。ステップ3. [埋め込み]をクリックします
Xcodeは、View ControllerとNavigation Controllerを自動的に埋め込みます。