CosmicMind:如何使用Motion在容器视图中的控制器之间进行转换

时间:2017-05-31 15:33:01

标签: material-design motion cosmicmind

在集装箱视图中使用时,我尝试实现Motion功能,从一个视图控制器转换到另一个视图控制器。

这就是我想要实现的目标:

  1. 使用包含容器视图的UIViewController
  2. 使用包含表格的视图控制器设置容器视图
  3. 当用户选择行时,我想转换到另一个视图控制器,同时将表格视图中的图像设置为新视图控制器中的图像。
  4. 所以我有以下UIViewControllers:

    1. 主要的UIViewController,带有一个containerView enter image description here

    2. 列出UIViewController

    3. 详细信息UIViewController
    4. enter image description here

      不,我想循环,带有细节的列表视图控制器,以及图像的转换。

      有点像PhotoCollectionSample,但在容器视图中。

      我在主视图控制器和容器中使用的视图控制器中设置了isMotionEnabled = true。我还在两个视图控制器中的imageViews上设置了相同的motionIdentifier。

      我面临的问题是如何在控制器之间进行转换。由于我没有使用UINavigationController或UITabBarController,所以我不认为动画会被触发。

      目前我通过使用此处的实现在控制器之间进行转换。

      Switching Child View Controllers in iOS with Auto Layout

      但我想我必须以另一种方式去做。

1 个答案:

答案 0 :(得分:0)

使用此方法

/**
 A helper transition function.
 - Parameter from: A UIViewController.
 - Parameter to: A UIViewController. 
 - Parameter in view: A UIView.
 - Parameter completion: An optional completion handler.
 */
 func transition(from: UIViewController, to: UIViewController, in view: UIView, completion: ((Bool) -> Void)? = nil)

并将其称为:

Motion.shared.transition(from: vc1, to: vc2, in: container)

这应该有效:)