9

ストーリーボードを使用して iPhone アプリを作成していますが、タブ バー コントローラーに問題があります。タブ バー コントローラー (view1) からリンクされているビューの 1 つに、別のビュー (view2) につながるボタンがあります。View2 には、View1 に戻るボタンがあります。非常に簡単です。しかし、ビュー 1 からビュー 2 に移動するとタブ バーが消え、さらに悪いことに、ビュー 1 に戻るとタブ バーがまだ表示されていません... どうすれば修正できますか? (私はまだアプリにコードを入れていません。ストーリーボードとAppleが提供するAppDelegateクラスしかありません(メインファイルもあると思いますが、それに触れるつもりはありません)。

どんな返信でも大歓迎です!

4

2 に答える 2

32

タブ バー ビューであるビューからモーダル セグエを実行すると、提示しているモーダル ビューのタブ バーが削除されます。

次に、セグエを実行すると、ビュー コントローラーの新しいインスタンスが作成されます。したがって、view1 から view2 にセグエし、タブ バーを失い、view1 にセグエしているのだと思います。この時点で、view1、view2、およびタブ バーを持たない view1 の 2 番目のコピーが作成されました。

2つのうちの1つをお勧めします。

1.) ビュー 1 からビュー 2 に移動するときにタブを下部に保持する場合は、ビュー 1 をクリックし、画面の上部で [エディター]、[埋め込み]、[ナビゲーション コントローラー] の順に選択します。これにより、view1 がナビゲーション コントローラーに埋め込まれます。次に、セグエをモーダルからプッシュに変更すると、タブバーが下部に保持されます。また、上部のナビゲーション バーにより、新しいセグエを作成するのではなく、(ビューをポップすることによって) ビュー 2 からビュー 1 に正しい方法で簡単に戻ることができます。ナビゲーション バーが気に入らない場合は、インスペクタで [トップ バー] プロパティを [なし] に変更できます。その後、view1 に戻るには、view2 で別の方法を作成する必要があります。(セグエインではなく、コントローラーをポッピングすることによって)

2) ナビゲーション コントローラーを設定したくない場合は、view2 コントローラーの下部にタブ バーを保持するのが少し難しくなります。実際、モーダルセグエでそれができるかどうかはわかりません。おそらく、ある種のカスタムセグエを書かなければならないでしょう。いずれにせよ、view1 に戻って正しいコントローラー (タブのない新しいバージョンではない) に戻りたい場合は、使用しているボタンにアクションをアタッチして、次のコードを使用する必要があります (私も添付しましたナビゲーション コントローラーを作成してナビゲーション バーを削除する場合に備えて、ナビゲーション コントローラー プッシュ セグエのコード。)

モーダル セグエの場合:

[self dismissModalViewControllerAnimated:YES];

プッシュ セグエの場合:

[self.navigationController popViewControllerAnimated:YES];

タブを保持することが保証されているので、最善の策は、ナビゲーション コントローラー メソッドを使用することです。次に、ナビゲーション バーを使用して戻るか (簡単な方法で、コードは必要ありません)、ナビゲーション バーを削除して上記のボタンとコードを使用することができます。

幸運を!

于 2012-07-03T14:10:12.123 に答える