2017-09-04 38 views
1

我在Swift 3中为tvOS构建游戏。游戏具有CPU密集型游戏背景,包含多个动画。这个背景是一个专用于这个任务的UIViewController。我想在所有其他的UIViewControllers中使用这个背景。Swift中主UIViewController中的多个UIViewControllers

在ViewControllers之间导航时,背景动画需要顺利地继续。什么是最好的方法来做到这一点?共享背景的UIViewController

示意性例子:

Example

+0

使用自定义'UIView'您的所有ViewControllers的背景视图。但是,如果你正在设计一款游戏,你应该使用'SpriteKit'而不是'UIKit'。 –

回答

2

使用父子视图控制器遏制。

创建父视图控制器。让您的常量动画在视图控制器的内容视图中运行。

将容器视图添加到该视图控制器和一个嵌入segue,链接到要在容器视图中进入的第一个子视图控制器。

然后使用视图控制器子视图控制器支持方法和转换方法来交换另一个子视图控制器的子视图控制器。 (见transition(from:to:duration:options:animations:completion:)也看到在Xcode文档UIViewController类描述“实现一个容器视图控制器”的部分尤其是,该位:。

下面是基本方法,你可能需要调用:

  • addChildViewController(_ :)

  • removeFromParentViewController()

  • willMove(toParentVi ewController :)

  • didMove(toParentViewController :)

相关问题