我想在我的应用程序的背景的视频,但是我已经做了这通过让我所有的类继承这个类如何在不同的视图控制器中拥有相同的视频实例?
的问题是,当我从视图控制器改变视频重新开始再次,我不想要这个,我希望视频从最后一个视图控制器中继续,我的解决方案将实例化一个视频,并在我所有的视图控制器上访问它,我该如何做到这一点?还是有另一种解决方案?
我想在我的应用程序的背景的视频,但是我已经做了这通过让我所有的类继承这个类如何在不同的视图控制器中拥有相同的视频实例?
的问题是,当我从视图控制器改变视频重新开始再次,我不想要这个,我希望视频从最后一个视图控制器中继续,我的解决方案将实例化一个视频,并在我所有的视图控制器上访问它,我该如何做到这一点?还是有另一种解决方案?
你可以使用Singleton来实现。
这里的例子:
final class VideoPlayerManager {
static let shared = VideoPlayerManager()
private init() { }
var avPlayer: AVPlayer!
var avPlayerLayer: AVPlayerLayer!
var paused: Bool = false
}
要viewDidLoad
拨打:
VideoPlayerManager.shared.avPlayer.play()
虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/16841058) – dfd
这样创建singleton
: -
class A {
static let a = A()
}
而且你可以在多个访问上述目的相同的0123类例如
class B {
func someMethod() {
let a = A.a
}
}
class C {
func someMethod() {
let a = A.a
}
}
语境是非常重要的。例如,如果您已将视图控制器嵌入到导航控制器中,则将视频播放器放置在导航控制器内部,将清晰的背景色视图控制器置于顶部会更有意义。这样你保持一个单一的实例,你的视频播放器是独立于topViewController 再次,这一个这样的选项。 – n00bProgrammer