1

4つのシーンを持つストーリーボードを使用してアプリを作成しようとしています:

  • 選択ログイン方法
  • ログインデータを入力
  • ログイン成功
  • メインシーン。

私が今行っていることは次のとおりです。ルート ビューとして ChooseLoginMethod を持つ UINavigationController があります。ChooseLoginMethod には、EnterLoginData へのプッシュ セグエである (さまざまなログイン方法用の) いくつかのボタンがあります。EnterLoginData には SuccesfullLogin へのプッシュ セグエがあり、SucessfullLogin には MainScene へのプッシュ セグエがあります。

問題は、SuccessfulLogin と MainScene がトップ バーに戻るボタンを表示することです。これは、アプリケーションにとって意味がありません。

私はもう試した:

  • これら 2 つのビューのトップ バーを非表示にします。成功していない。
  • セグエをモーダルに変更します。機能しているように見えますが、正しいことのようには感じません。

だから私がやりたいのは、UINavigationController のスタックにあるビューのチェーンを壊すセグエを作成することです。ストーリーボードでこれを行う適切な方法はありますか?

- 編集 -

多分私がすべきことは、ルートビューを置き換えることです(Set root view for UINavigationController)。これは機能する可能性がありますが、ストーリーボードで実行できるはずのプログラミングの回避策のようです。または、「iOSのやり方」を理解していないのは私だけかもしれません。

4

2 に答える 2

2

setNavigationBarHiddenのように、viewcontroller が画面に表示される前に使用する必要がありましたviewWillAppear

ただし、「MainScene」から「RootController」に戻ることはできません。したがって、「SuccessfulLogin」の後に何かを実行してpopToRootViewControllerから、「MainScene」をポップする必要があります。

于 2012-12-05T16:51:09.940 に答える
1

通常、メイン シーンをルート ビュー コントローラーにするのが最善だと思います。その viewDidAppear メソッドから、ChooseLoginMethod コントローラーをモーダルに提示し、そこから他のログイン コントローラーへのモーダル遷移を行うことができます。最後に到達し、メイン シーンに戻りたい場合は、ルート ビュー コントローラーからモーダルを閉じるだけです。

[self.view.window.rootViewController dismissViewControllerAnimated:YES completion:nil];
于 2012-12-05T19:13:39.530 に答える