2016-05-16 7 views
0

私には2つのView Controller、LevelSelectViewControllerとGameViewControllerがあります。rootViewControllerではないpushViewController

私が作っているアプリケーションのルートビューコントローラもありません(ルートビューコントローラはMainViewControllerと呼ばれています)。

ナビゲーションメソッドpushViewControllerを使用するにはどうすればいいですか:animated:LevelSelectViewControllerからGameViewControllerへのこの移行には?私LevelSelectViewControllerで

は、あなたがボタンをクリックし、次のアクションメソッドを実行します。あなたはストーリーボードを使用している場合

- (IBAction)buttonPressed:(id)sender { 
     // the pushViewController:animated: method hopefully can be used 
     // other code 
    } 
+0

「LevelSelectViewController」はどのように表示されましたか? – rmaddy

+0

presentViewController ...これは、私がどのように私のアプリケーションのすべてのボタンを介して移動してきたのです。 AppDelegateからナビゲーションコントローラとしてルートビューコントローラを設定すると、ナビゲーションコントローラとして他のサブビューコントローラを使用できるようになりますか? – Frank

答えて

0

LevelSelectViewControllerからGameViewControllerへのこの移行に、ナビゲーションメソッドpushViewController:animated:を使用するにはどうすればよいですか?

UIWindowrootViewController性を有し、UINavigationControllerinitWithRootViewControllerパラメータを持っているので、用語「ルートビューコントローラは、」少し混乱することができます。 -pushViewController:animated:を呼び出す場合は、そのメソッドがUINavigationControllerに属しているため、ビューコントローラグラフにナビゲーションコントローラが必要です。あなたのLevelSelectViewControllerインスタンスがナビゲーションスタックの一部である場合は、あなたがこれを行うことができます:

- (IBAction)buttonPressed:(id)sender { 
    // create a game controller 
    GameViewController *gameController = [[GameViewController alloc] initWithNibName:nil bundle:nil]; 

    // push it 
    [self.navigationController pushViewController:gameController animated:YES]; 

    // other code 
} 

Aより一般的なものを、これらの日を行うには、しかし、ストーリーボード内のすべてのView Controllerを入れて、単純にボタンを接続することですプッシュ遷移。

+0

あなたはApp Delegateのナビゲーションコントローラとしてルートビューコントローラを設定した場合、そのビューコントローラの他の子も同じ機能を楽しむことができることを知りませんでした(他のナビゲーションコントローラインスタンスを再定義する必要はありません) .....ありがとう! – Frank

0

だけセグエを作成します。情報を渡していない場合は、あるView Controllerから別のView Controllerにコントロールをドラッグして押し込むことができます。ルートビューコントローラかどうかは関係ありません。

データを渡したい場合は、インデックスパスやボタンなどではなく、ビューコントローラからストーリーボード上にセグを作成し、ストーリーボード上のセグーと完全に同じ識別子を持つビューコントローラ内のprepareForSegueMethodを呼び出します。

関連する問題