初めてのアプリを作っています。Xcode 4 とストーリーボードを使用して、何が起こっているかをよりよく把握しています。アプリは (ストーリーバードで) 4 つのタブを持つ TabBarController で始まります。タブのうちの 2 つは、テーブルビュー システムを備えたナビゲーション コントローラーであり、他の 2 つのタブは通常のビュー コントローラーです。
TabBarController 自体は Storyboard でのみ作成し、そのためのクラスは作成しませんでした。したがって、アプリではすべてのタブが同時に「実行」されているように見えますが、別のタブに入って戻っても変更されません。専門外のように見えますし、iPhoneにも悪いのでしょうか?
ここで、別のタブが入力されたときに左のタブを非アクティブ/RootViewController にリセットしたいと考えています。
つまり、TabBar に対してある種のデリゲート関数を作成して、選択したタブのみがアクティブになるようにします。そんな感じ。間違っている場合は訂正してください。私は自分が何をする必要があるかを理解しようとしているだけです。
調査の結果、AppDelegate.h で TabBar のプロパティを作成し、それを AppDelegate.m で合成してから、TabBar のデリゲートを AppDelegate (self ?) または何かに作成するだけで済みます。 (AppDelegate.m):
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
//some statements.
次に、AppDelegate.m のどこかに次のようなものを追加します。
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
//With some statements about the viewcontrollers
しかし、ご覧のとおり、私はコーディングの経験があまりなく、xibsなどを使用しているため、理解できるチュートリアル/ガイドを見つけることができません。それを行う方法を理解するにはコード例が必要です。プロセスを言葉で説明するだけの場合、私の言いたいことを理解すれば、新しい質問がたくさん出てきます。
4 つのタブ (2 つのテーブルビューと 2 つのビュー) を表すクラスを呼び出しましょう。
FirstTableViewController、SecondTableViewController、FirstViewController、SecondViewController
AppDelegate でこの関数を作成するだけで十分かどうか、または TabBar のクラス (.h/.m) を作成する必要があるかどうか、別の ViewControllers クラスなどにコードを追加する必要があるかどうかはわかりません。
誰かがこれを最も簡単で正しい方法で行うのを手伝ってくれることを願っています。他の多くの人がアプリ開発の初心者段階でこのジレンマにぶつかり、これに対する答えが非常に役立つと思うでしょう.
ご協力ありがとうございました。