swift - 第一次 Segue 后 Segue 停止工作

标签 swift uistoryboard uistoryboardsegue xcode7

我正在尝试使用自定义segue,当单击按钮时,它会使 View 向右或向左“滚动”。我添加了一个如下所示的自定义类

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 })
}

}

但问题是,在我继续进行一次之后,我无法继续回到我所离开的 View 。我认为这是因为我声明了 oldView 和 newView 的方式,应用程序没有更新哪个 View 是哪个 View ,所以当我尝试切换到第一个 View 时,它会切换回当前 View 。 如果我是正确的,我如何确保应用程序更新哪个 View ?

最佳答案

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

也许你应该添加类似的内容

[self.navigationController pushViewController:vc animated:NO]

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

关于swift - 第一次 Segue 后 Segue 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32728256/

相关文章:

swift - 如何在结构/类中 stub Swift "Trait/Mixin"方法进行测试

ios - Swift indexpath.row 提取单个字符串

ios - Realm iOS 教程,从头开始构建 iOS 应用程序,写入失败

ios - UIViewController 中的自定义 subview 未出现

swift - 如何使 Onboarding 与 iOS13 中的 Scene Delegate 配合使用?

ios - 我可以将自定义转场用于非视觉目的吗?

ios - 为什么我的 UIBarButtonItem 不调用我的自定义函数?

ios - Segue 在 map 注释按钮上不起作用 - 看不出有什么问题

multithreading - 带有异步 block 的串行调度队列

ios - 转到另一个 Storyboard?