4

別のビューコントローラーに移動する必要がperformSegueWithIdentifierありますが、現在使用しているビューコントローラーも削除する必要があります。これを行うにはどうすればよいですか。これを試しましたが、機能しません:

[self performSegueWithIdentifier:@"next" sender:self];
[self dismissViewControllerAnimated:NO completion:nil];

//tried the other way, but it doesn't work either
[self dismissViewControllerAnimated:NO completion:nil];
[self performSegueWithIdentifier:@"next" sender:self];

これを行う簡単な方法はないように見えますか?私は4つのViewControllerを持っています。それらはこのように接続されており、ゲームオーバーからハイスコアに行きたいです。

menu-->game----->gameover
menu-->highscore
4

4 に答える 4

6

これはどう?

UIViewController *parentController = self.presentingViewController;
[picker dismissViewControllerAnimated:YES completion:^(void){
    [parentController performSegueWithIdentifier:@"next" sender:self];
}];
于 2012-12-05T23:35:29.907 に答える
1

私は同じ問題を抱えていました。これは、誰かがここに来て答えを探している場合に解決するために私がしたことです。

//In viewController that is being dismissed
[self dismissViewControllerAnimated:NO completion:^{
     [[NSNotificationCenter defaultCenter] postNotificationName:@"callSegue" object:self];
}];


//In viewController being presented
//in viewDidLoad:
[[NSNotificationCenter defaultCenter] addObserver: self
                                             selector: @selector(gotoNewView)
                                                 name: @"callSegue"
                                               object: nil];

-(void)gotoNewView {
    [self performSegueWithIdentifier:@"segueToPerform" sender:self];
}
于 2014-02-11T15:00:59.227 に答える
0

代わりにプッシュセグエを使うべきだと気付くまで、私は同じ問題を抱えていました。
新しいVCは、両方を同時に却下します。

于 2013-01-31T19:21:40.880 に答える