2017-09-04 40 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 :)

相關問題