の違いを知りたい
[self presentModalViewController:controller animated:YES];
と
[self.navigationController pushViewController:controller animated:YES];
私は両方を使用しましたが、まだ違いがわからないか、気づいていません。それらのいずれかをいつ使用する必要がありますか?
ありがとう..
の違いを知りたい
[self presentModalViewController:controller animated:YES];
と
[self.navigationController pushViewController:controller animated:YES];
私は両方を使用しましたが、まだ違いがわからないか、気づいていません。それらのいずれかをいつ使用する必要がありますか?
ありがとう..
基本的な違い:
pushViewController
ナビゲーションコントローラーでのみ機能します
presentModalViewController
すべてのView Controllerで機能します
navigationControllerUINavigationController
は、ナビゲーション スタック ( ) 内のすべてのコントローラーによって使用されるのインスタンスですUIViewController
。
モーダルビューを表示することは、別のビューの上にビューを表示することです。これらは通常、自己完結型の方法で開始および完了する必要がある「タスク」に対して実行します。Appleデベロッパガイドのモーダルビューについてさらに読んでください。
アプリでナビゲーションが論理的に必要な場合は、ビューをナビゲーションコントローラーにプッシュするのは異なります。iDevicesの設定アプリのようにドリルダウンテーブルを言います。メイン設定があり、サブ設定などにドリルダウンします。
あなたの質問が何であれ、それらが概念的で一般的であるならば、私はあなたに適切なアップルプログラミングガイドにあなたを連れて行く「Xプログラミングガイド」をグーグルで検索することを強くお勧めします:)X=あなたの場合のビューコントローラ
基本クラスに独自の NavigationController がある場合は、次のように記述できます。
[self.navigationController pushViewController:objMyViewController animated:YES];
基本クラスに UIViewController しかない場合は、次を使用します。
MyViewController * objMyViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:objMyViewController];
navController.navigationItem.leftBarButtonItem = nil; // make nil if you want
// to use it in next View
[self presentModalViewController:navController animated:YES];
現在、MyViewController にはナビゲーションがあり、MyViewController に次のような関数を記述して、別の viewController をプッシュできます。
-(IBAction)btnNext_click {
SecondViewController * objSecondViewController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
[self.navigationController pushViewController:objSecondViewController animated:YES];
}