首页 > 解决方案 > 主/详细视图:从添加视图到详细视图,反之亦然

问题描述

这可能是一个非常简单的问题,但我找不到关于如何正确(=优雅地)实现这一目标的明确答案。

我有一个简单的项目列表(表格视图)(在下面的屏幕截图中称为模型)。当我添加一个新项目时,我有一个模态序列来显示Add view. 当点击 时Save当前返回到表格视图。在列表(表格视图)中,当点击一个项目时,它会显示detail view.

许愿行为

  1. save在添加新项目时点击时,detail view应该显示,而不是返回列表
  2. 当点击editdetail view,它应该显示add (edit actually) view供用户修改模型

这与本机 iOS 应用程序的行为相同Contacts

在此先感谢您的帮助,并对问题的简单性感到抱歉!

导航故事板


这是我尝试过的

在重复的 segue 上使用自定义 Segue 以显示详细信息

class FadeSegue: UIStoryboardSegue {

    override func perform() {

        guard let destinationView = self.destination.view else {
            // Fallback to no fading
            self.source.present(self.destination, animated: false, completion: nil)
            return
        }

        destinationView.alpha = 0
        self.source.view?.addSubview(destinationView)

        UIView.animate(withDuration: CATransaction.animationDuration(), animations: {
            destinationView.alpha = 1
        }, completion: { _ in
            destinationView.removeFromSuperview()
            self.source.present(self.destination, animated: false, completion: nil)
        })
    }
}

对于Save新模型(在 AddModelViewController 中),我在列表(表)ViewController 中调用它:

self.dismiss(animated: false, completion: {
    self.performSegue(withIdentifier: "detailViewSegueAfterNewModel", sender: nil)
})

标签: iosswift

解决方案


推荐阅读