3

ステップ:iPhone UINavigationControllerの内部のUIViewController

  • リスト項目
  • ナビと呼ばれるプロジェクトを作成します。
  • 新しいUIViewController BaseViewController(XIB)とFirstViewController(XIB)を作成します。

    @synthesize baseController; 
    (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    [self.window addSubview:baseController.view]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
    } 
    
  • オープンBaseViewController.xibファイルをとUINavigationControllerを追加し、そのルートビューコントローラを設定します。NavAppDelegat.mNavAppDelegat.h定義baseController変数

    @interface NavAppDelegate : NSObject <UIApplicationDelegate> { 
    BaseViewController *baseController; 
    } 
    @property (nonatomic, retain) IBOutlet BaseViewController *baseController; 
    
  • は、ウィンドウにbaseControllerを追加しますクラスとXIBをFirstViewController(インスペクタ内)に追加します。

  • さらに、navigationController変数にUINavigationControllerを接続します。

これは、ナビゲーションバーでFirstViewControllerが表示されるはずです。私がMainWindow.xibでこれを直接行うと、私は期待どおりに動作していますが、ここではナビゲーションバーが見えません。私は何が欠けていますか?どうも!

更新日: MainWindow.xibではなく、コントローラ(BaseViewController.xibここ)の中にUINavigationControllerを使用している場合は、ナビゲーションバーが表示されません。

答えて

3

ナビゲーションコントローラをウィンドウに直接接続しようとしているのか、2番目のXIB(動作するはずのもの)から来るのか、ナビゲーションコントローラを別のビューのサブビューにするのかはわかりません動作しません。

UINavigationControllerは、UIWindowのプライマリサブビューとして、またはのサブビューとしてのみ使用することを意図しています。 Appleはナビゲーションコントローラを他のコンテキストに組み込むことを望んでいません。

詳しくは、「View Controller Programming Guide」のCombined View Controller Interfacesを参照してください。

+0

こんにちは、Seamusは、私のUISplitViewControllerのDetailedViewControllerで、navigationControllerサブビューをフックできないため、UITableViewをインターフェースするUIViewControllerでUINavigationControllerを持つことができません。 詳細ビューでUINavigationControllerを表示することはできますが、tableview自体は表示されません。 – fes

+1

複合ビューコントローラインタフェースは、ここにあります:https://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html – cbrauchli

関連する問題