1

アプリに別のフローがあります。このフローはfirstViewControllerで始まり、このビューで次のようにsecondViewControllerを呼び出します。

- (IBAction)PressButton:(id)sender {

    SecondViewController *second = [[SecondViewController alloc] init];
    second.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    UINavigationController *nav = self.navigationController;
    [nav presentViewController:second animated:YES completion:nil];                              
}

私のsecondViewControllerで、thirdViewControllerをプッシュしたいと思います。しかし、それは機能していません私はこの方法を試しました:

- (IBAction)pressButton:(id)sender {

   ThirdViewController *tvc = [[ThirdViewController alloc] init];
   UINavigationController *nav = self.navigationController;
   [nav pushViewController:tvc animated:YES];

}

secondViewControllerのボタンを押しても何も起こりません。

私が間違っているのは何ですか?

私が使用しているもの:

  • OSX 10.8.2
  • Xcode 4.6
  • iOS 6.1
4

4 に答える 4

11

ナビゲーションコントローラーをモーダルに提示し、そのナビゲーションコントローラーのルートとして2番目のビューを用意する必要があります。また、親ナビゲーションコントローラではなく、所有するビューからpresentViewControllerを呼び出します。

- (IBAction)PressButton:(id)sender {
        SecondViewController *second = [[SecondViewController alloc] init];
        second.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:second];
        [self presentViewController:navigationController animated:YES completion:nil];    
    }
于 2013-02-25T02:16:45.590 に答える
2

2番目のViewControllerだけを提示するのではなく、必ず追加のNavigationControllerを提示してください。

SecondViewController *secondViewController = [[SecondViewController alloc] init];

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:secondViewController];
[[self navigationController] presentViewController:navigationController animated:YES completion:nil];
于 2013-02-25T01:15:06.567 に答える
0

別のページにモーダルで移動するためのボタンを取得しようとしている場合は、ストーリーボードまたはxibファイルに移動できます。そのボタンから移動したいビューコントローラへのクリックを制御します。次に、ポップアップメニューに、使用するアウトレットのタイプのオプションが表示されます。お役に立てれば

于 2013-02-25T04:38:41.140 に答える
0

ストーリーボードを使用している場合は、ソースビューxibをクリックし、Ctrlキーを押しながら宛先にドラッグして(セグエの作成)、ポップアップメニューからモーダルを選択します。新しく作成された接続をクリックします。名前を追加してから、ソースビューコントローラに追加します [self performSegueWithIdentifier:@"Segue Name" sender:self];

于 2013-02-25T03:11:50.907 に答える