0

タブバーとして機能するツールバーがある AP の 1 つに奇妙なデザイン パターンがあります。基本的に、このツールバーをすべてのビュー コントローラーに追加します。ツールバー自体には、アプリ内の 3 つの異なるナビゲーション コントローラーへのポインターが含まれています。ツールバー ボタンの 1 つが押されると、現在ウィンドウにあるナビゲーション コントローラーを削除し、ユーザーが選択したものを追加できる必要があります。私の問題は、新しい navcontroller をスーパービューに追加する方法がわからないことです。アプリ デリゲート オブジェクトをインスタンス化して、それに追加しますか? または、アプリのデリゲートからツールバーにポインターをクラス変数として送信する必要がありますか? どんな助けでも大歓迎です。

4

1 に答える 1

1

UINavigationControllerこれを行う最善の方法は、アプリのデリゲートで切り替えを管理することだと思います。このプロセス中に必要なすべてのクリーンアップも、ここで確認できます。切り替えられる s の数が限られている場合UINavigationController、これを処理する方法がいくつかあるだけかもしれません。

アプリ デリゲート .h ファイル:

@property (nonatomic, retain) UINavigationController *currentNavController;

アプリ デリゲート .m ファイル:

    @synthesize currentNavController = _currentNavController;

    - (void)loadNavControllerOne
    {
        self.currentNavController = ...; // Set up your new controller
        self.window.rootViewController = self.currentNavController;
    }

    - (void)loadNavControllerTwo
    {
        // Similar to -(void)loadNavControllerOne
    }

要約ですが、あなたはその考えを理解します。ただし、これらのコントローラー間で状態を共有する必要がある場合は、これが変わります。あなたは?

編集:アプリ デリゲートにアクセスするには、 を呼び出します[[UIApplication sharedApplication] delegate]

于 2011-08-06T10:41:57.680 に答える