アングリーハッカー、
私の簡単な提案は、zoul one に従うことです。あなたが望むものを達成する最も簡単な方法は、 を作成し、UINavigationController
それを他のコントローラーのコンテインメント コントローラーとして使用することだと思います。
したがって、方法は で を作成し、UINavigationController
それAppDelegate
を として設定することができrootViewController
ますwindow
。を作成するときUINavigationController
に、ルート コントローラー (この場合はMainForm
) を渡すことができます。
MT では次のようになります (手で書いたのでコードを信頼しないでください)。
private UINavigationController navController;
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
navController = new UINavigationController(new MainForm());
window.RootViewController = navController;
window.MakeKeyAndVisible ();
return true;
}
これで、アプリを起動するとMainForm
のビューが表示され、さまざまなコントローラー間を移動できるようになります。
たとえば、次のようMainForm
に移動できます。DetailForm
this.NavigationController.PushViewController(new DetailForm(), true);
内も同様DetailForm
ですMoreMinorDetails
。
MoreMinorDetails
fromをDetailForm
使用するなど、一歩戻るには
this.NavigationController.PopViewControllerAnimated(false);
ルート コントローラ ( MainForm
)に移動するには、DetailForm
またはMoreMinorDetails
使用します。
this.NavigationController.PopToRootViewControllerAnimated(false);
スペースについては、問題ありません。あなたには2つの方法があると思います。1 つ目は、ナビゲーション コントローラー バー内で作成したバー アイテムを移動することです。各コントローラーで、どのボタンを表示するかどうかを決定できます。2 つ目は、ナビゲーション バーを完全に非表示にして、作成済みのボタンを使用することです。
どちらの方法でも、これらのボタンにアクションをアタッチして、コントローラー間のナビゲーションを許可できます。さらに、最初を選択すると、ナビゲーション バーの戻るボタンを非表示にすることもできます。
覚えておくべき簡単な注意事項は次のとおりです。
ナビゲーション バーは に固有であるためUINavigationController
、ナビゲーション コントローラーにプッシュするすべてのコントローラーに対してバーの状態が維持されます。この概念を説明するために、A と B という 2 つのコントローラーがあるとします。最初に A を押し、そのViewWillAppear
メソッドでボタンを非表示にします。B を押しても、ボタンは表示されません。B のボタンを再表示したい場合は、そのViewWillAppear
メソッド (以前のように) で遊ぶことができます...
遊びたくない場合は、クラスUINavigationController
によって提供される新しいビュー コントローラー コンテインメント機能を確認する必要があります。UIViewController
これは iOS >= 5 からのみ適用されます。同じUINavigationController
メカニズムの効果を得ることができますが、達成するのがより困難になる可能性があります。
それが役立つことを願っています。