2011-10-21 7 views
0

このシナリオのヒントはありますか?ツールバーとそのボタンを使用して異なる '子'ビューコントローラーを切り替える

私のアプリデリゲートのnibには、viewcontrollerがrootviewcontrollerとして設定されているため、アプリが読み込まれるとこのビューコントローラが読み込まれます。

このビューコントローラには、さまざまなボタンのあるツールバーがあります。これらのボタンは、異なるView Controllerを切り替えるためのボタンです。

私はaddChildViewController、presentViewController、presentModalViewControllerを使用しようとしましたが、ビューコントローラ間の切り替えはできませんが、まだツールバーを表示したままにしておきます。

私がaddSubViewを使用すると、すべての向きが精神的になり、手動でビューコントローラのサイズを変更する必要があります。これは手動で行う必要があります。

編集:私は、すなわち上のコントローラを押しても、私はEDITを持っている場合、目に見えるナビゲーションコントローラのボタンを維持し、私はそれらの同じボタンは私がスタックに異なるコントローラをプッシュした場合でも、ツールバー上に残りたいボタンを削除したい

+0

どのような例で作業していますか?またはテンプレートプロジェクトを使用しましたか? –

+0

サンプルまたはテンプレートはありません。 – TheLearner

+0

ナビゲーション、タブバーまたは分割ビューコントローラーを使用していますか? –

答えて

0

タブバーを使用する必要があるようです。ツールバーのボタンを押すと別の方法として、あなたはこの上のツールバーとナビゲーションコントローラおよびプッシュ/ポップ・ビュー・コントローラを使用する必要があります

は、あなたが使用している場合は、ナビゲーションバーを表示する必要はありませんのでご注意くださいナビゲーションコントローラ。

//create first button 
    buttonOne = [[UIBarButtonItem alloc] initWithTitle:@"EDIT" style:UIBarButtonItemStyleBordered target:self action:@selector(editStuff)]; 
    [buttons addObject:buttonOne]; 

    //create second button 
    buttonTwo = [[UIBarButtonItem alloc] initWithTitle:@"DELETE" style:UIBarButtonItemStyleBordered target:self action:@selector(deleteStuff)]; 
    [buttons addObject:buttonTwo]; 


    // Add buttons to toolbar and toolbar to nav bar. 
    [buttonsToolbar setItems:buttons animated:NO]; 
    [buttons release]; 

    UIBarButtonItem *twoButtons = [[UIBarButtonItem alloc] initWithCustomView:buttonsToolbar]; 

    self.navigationItem.leftBarButtonItem = twoButtons; 
    [twoButtons release]; 
+0

ありがとう@adeアニメーションがないnavコントローラを使用しようとしていますが、それがどのように見えて正しいのかを見てください。 – TheLearner

+0

どのような使命。ナビゲーションコントローラを使用するためにすべてを変更しましたが、<戻るボタンを表示したくありません。ルートナビゲーションコントローラのボタンを表示したままにします。 – TheLearner

+0

self.navController.navigationBarHidden = YES; – ader

0

addSubview:それは理想的ではないですので、二次ビューコントローラの使用を許可していません。

ツールバーを使用してビューコントローラを切り替えることができますが、最も簡単な実装は、各ビューコントローラのペン先に同じツールバーを置き、すべてのツールバーアクションを処理するスーパークラスのビューコントローラサブクラスを作成することです。

タブバーやナビゲーションバーを使用する必要はありませんが、いずれかの方がより簡単な方法です(ただし、重要な点ではそれほど明白ではありません)。

+0

iOS 5では、別のビューコントローラのビューをミックスに追加するのに 'addSubview'を使うことはできますが、サブビューコントローラを追加する親VC上で' addChildViewController'を呼び出す必要があります〜(口の中の一口)。このようにして、セカンダリView Controllerは、親が行う様々な回転と外観の呼び出しをすべて受け取ります。 – lxt

+0

正確には、addSubview:を使って別のビューコントローラからビューを盗むことはできません。彼の例では、別の方法を試してみるというコメントがあったので、OPが最高のエクスペリエンスを得ることができると思います。 –

0

ルートコントローラとしてUITabBarControllerを使用してください。これは、子ビューコントローラの親コンテナとして機能し、タブバーを提供し、子ビュー間の切り替えを実装します。 class referenceまたはView Controller Programming Guide

関連する問題