与其使用 segue 返回上一个控制器,不如使用与 segue 关联的事件,而不是关闭当前视图控制器(如果 segue 是模态的)或从导航控制器中弹出它(如果 segue 是push),之前的控制器会自动显示。
例如,如果在您按下登录屏幕上的按钮时正在执行返回的模态转场,则您从情节提要中删除转场,并在与您的操作链接的按钮的触摸内部事件中删除该转场,成功登录后将会通知:
[self dismissViewControllerAnimated:YES completion:nil];
在情节提要上,您将右键单击按钮并将发送事件中的触摸向上拖动到视图控制器场景的第一响应者。这将执行执行 segue 转换时执行的反向转换。您可以为此使用模态转场,无需使用导航控制器。
如果您将登录视图推送到导航控制器上,那么您必须将其从堆栈中弹出(如果返回到前一个视图)。使用其中之一:
[[self navigationController] popViewControllerAnimated:YES]; // goes back to previous view
[[self navigationController] popToViewController: myViewControllerAfterLogin animated:YES]; // goes back to specific view on stack.
[[self navigationController] popToRootViewControllerAnimated:YES]; // goes back to first view on the stack
动画过渡应该与 segue 上使用的过渡类型相反,因此当您关闭视图时 curl up 会向下卷曲。