【发布时间】:2012-12-05 22:01:47
【问题描述】:
我需要使用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 个视图控制器,它们是这样连接的,我想从游戏结束到高分。
menu-->game----->gameover
menu-->highscore
【问题讨论】:
-
您的视图布局是什么?您正在尝试解除模态呈现的 UIViewController 并执行去哪里的 segue?还有你说的不起作用是什么意思?它会崩溃吗?它会默默地失败吗?
-
最终这听起来像是糟糕的设计,您使用的是模态还是推送segues?听起来您应该使用 push segues,然后您不必担心关闭视图控制器。
-
@Gabro 它说“警告:在演示或关闭过程中尝试从视图控制器关闭!”。它执行segue,但如果我回去,视图控制器仍然存在。所以它不会被解雇。
-
@mkral 我正在使用模态。我不能使用推送,因为它是一个游戏,所以它看起来不太好。所以基本上我有 4 个 vc:s 1 菜单,您可以从中选择播放或查看高分。然后当你玩我想去高分时,你会怎么做?菜单-->游戏-->游戏结束-->高分;菜单-->高分
-
我仍然会使用 push 只是隐藏导航栏。然后你可以从高分弹出推送,特别是 popToRootViewController
标签: objective-c ios uiviewcontroller segue