我需要使用performSegueWithIdentifier
转到另一个viewcontroller,但我还需要删除我当前所在的viewcontroller。我怎么能这样做,我试过这个但它不起作用:
[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个视图控制器,它们是这样连接的,我想从游戏切换到高分。
menu-->game----->gameover
menu-->highscore
答案 0 :(得分:6)
这个怎么样?
UIViewController *parentController = self.presentingViewController;
[picker dismissViewControllerAnimated:YES completion:^(void){
[parentController performSegueWithIdentifier:@"next" sender:self];
}];
答案 1 :(得分: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];
}
答案 2 :(得分:0)
我遇到了同样的问题,直到我意识到我应该使用push segue。
新VC将立即解雇他们。
答案 3 :(得分:0)
更好:
[self dismissViewControllerAnimated:NO completion:^(void)
{
// Perform the segue here.
}];