Segue在第一次赛后停止工作

时间:2015-09-22 22:47:38

标签: swift uistoryboard uistoryboardsegue xcode7

我正在尝试使用自定义的segue,这会使视图“滚动”。单击按钮时向右或向左。我添加了一个看起来像这样的自定义类

class horizontalSegue : UIStoryboardSegue {

override func perform() {

    var oldView = self.sourceViewController.view as UIView
    var newView = self.destinationViewController.view as UIView

    oldView.window?.insertSubview(newView, aboveSubview: oldView)

    newView.center.x = oldView.center.x + oldView.frame.width
    newView.center.y = oldView.center.y

    UIView.animateWithDuration(0.6, animations: { newView.center =     oldView.center }, completion:  { finished in Void })
}

}

但问题是,在我离开一次之后,我无法回到我所观察到的观点。我认为它是因为我已经声明了oldView和newView的方式,应用程序不更新哪个视图,所以当我尝试切换到第一个视图时,它会回到当前视图。 如果我是正确的,我如何确保应用程序更新哪个视图?

1 个答案:

答案 0 :(得分:0)

Apple文档说:"无论您如何执行动画,最后都要负责在正确的位置安装目标视图控制器(及其视图),以便它可以处理事件。例如,如果要实现自定义模式转换,则可以使用快照图像执行动画,然后在最后调用presentModalViewController:animated:方法(禁用动画)以在源和目标之间设置适当的模态关系查看控制器。"

可能你应该添加像

这样的东西
[self.navigationController pushViewController:vc animated:NO]

进入动画的完成处理程序?