0

私はこの簡単なことをしたい:uinavigationcontrollerを作成するが、それは起動時に表示されません。 uinavigationcontrollerにつながる「Go」ボタンが付いたウェルカム画面を作りたいとしましょう。私が見たすべての例では、ナビゲーションコントローラがすぐに現れるように見えます。それをどうやってやりますか?スタートアップに表示されないナビゲーションコントローラを作成する

ありがとうございます!これは目に見える足跡とナビゲーションコントローラを使用して、あなたが意味する「表示」により場合

答えて

1

ナビゲーションコントローラのビューを表示するのは、アプリケーションデリゲートの-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;メソッドで行われます。そこにNCがウィンドウのrootViewControllerとして追加されます。
別のビューを表示する場合は、NCの代わりにカスタムビューコントローラを正しく設定してから、ボタンが押されたときに呼び出されるアクションメソッドで2つのビューコントローラを切り替える(最初のカスタムビューコントローラをNCに置き換える) 。

// in the app delegate 
-(BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    //self.window.rootViewController = self.navigationController; 
    [self.myCustomController.touchButton addTarget:self 
              action:@selector(switchVC) 
            forControlEvents:UIControlEventTouchUpInside]; 
    self.window.rootViewController = self.myCustomController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

今すぐあなたのアプリデリゲートにアクションメソッド書き込み:

-(void)switchVC { 
    self.window.rootViewController = self.navigationController; 
} 
+0

私はそれについて考えましたが、uinavigationcontrollerに関連する他の多くの設定があります。私はそれを行う際にすべてを壊すかもしれないと恐れていますが、試してみます。ありがとう! – TommyG

1

、それは簡単です。単にルートビューコントローラでこれを行う:子ビューコントローラの場合

// Root 
- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
} 

を、あなたは彼らが表示されたときに、ナビゲーションバーを表示するために類似した何かをする必要があります。

これは、メインメニュービューのナビゲーションバーを表示したくないメインメニューのアプリケーションによく使用される手法です。

+0

おかげで、私は完全に全体のナビゲーションウィンドウを非表示にする意味myCustomControllerを想定し
touchButtonと呼ばれるUIButtonプロパティを定義します。 – TommyG

2

を助ける

[self.navigationController setNavigationBarHidden:YES]; 

非表示ナビゲーションバーを移動して、他の番組のナビゲーションバーにある希望を示してのViewControllerで

関連する問題