画面のスナップショットを見ると、「ホーム」シーンの中央にある大きな「ビデオ」ボタンをタッチして (下部のタブ バー ボタンをタッチするのではなく)、「ビデオ」シーンに移行しようとしていると思いますか?画面の、私は正常に動作すると思います)?その場合は、ビュー コントローラーのタブ バー コントローラーに、タブ バーのインデックスを変更することをボタンに伝える必要があります。セグエを使用して移行を行うことはできません (または、少なくともカスタム セグエなしでは実行できません。これは、以下で概説する手順よりもさらに複雑です)。他の方法でビューを変更している場合 (たとえば、標準のセグエを使用するかpresentViewController
、pushViewController
プログラムで使用するなど)、タブ バーが表示されなくなることがあります。
あなたは後にこう言いました。
ビデオコントローラーにタブバーがありますが、そこにドラッグして接続すると、タブバーが無効になります
はい、本当です。大きなボタンの 1 つからタブ バーのタブの 1 つにセグエを使用することはできません。(または、技術的には、セグエを使用したい場合は、以下のコードと非常によく似たカスタム セグエになりますが、おそらくもう少し複雑です。) したがって、大きなボタンにセグエを使用するのではなく、タブバーにその選択を変更するように指示するIBAction
(シーンの大きなVideos
ボタンに接続された)を記述する必要があります。Home
- (IBAction)clickedVideosButton:(id)sender
{
[self.tabBarController setSelectedIndex:1];
}
いくつかのコメント:
私の答えは、タブバー自体のボタンをタップすると、タブバーが期待どおりに機能するという前提に基づいていました。画面の下部にあるボタンをタップすると、他のビューに正しく遷移し、タブ バーが保持されますか? もしそうなら、上記の私の答えは、大きなボタンを機能させる際の問題を解決するはずです。ただし、そうでない場合は、問題は別の場所にあり、それを説明する可能性のあるコードを示す必要があります (UITabBarControllerDelegate
メソッドで非標準であるかviewDidLoad
、ビューで非標準のことを行っているかのいずれかです)。
私があなたのユーザー インターフェイスのデザインを正しく理解していれば、下部にタブ バーがあり、中央に大きなボタンがあり、おそらく同じことを行います。つまり、問題はありませんが、奇抜なユーザー インターフェイス デザイン (重複するボタン、ボタンを余分にタップする必要があるなど) です。大きなボタンを使用するか (たとえば、タブ バーを廃止し、IBAction
上記で提供したコードを削除し、シンプルなナビゲーション コントローラーを使用してセグエをプッシュするだけです)、または単にタブバー (ホーム画面をなくしたり、大きなボタンをなくしたりなど)。
「戻るボタンを押す」についても言及しましたが、どの画面スナップショットにも「戻る」ボタンは表示されません。あなたがナビゲーション コントローラーを持っていて、pushViewController
どこかでセグエを実行していると思いますか? 戻るボタンで何かをしている場合は、質問をさらに明確にする必要があるかもしれません。