gpt4 book ai didi

swift - 当第二个 View Controller 启动时停止第一个 View Controller 的动画快速编程

转载 作者:行者123 更新时间:2023-11-30 10:02:01 26 4
gpt4 key购买 nike

如何在快速编程中启动第二个 View Controller 时停止第一个 View Controller 的动画。我创建了一个在第一个 View Controller 中停止动画的函数。我希望在第二个 View Controller 中调用它。

在第一个 View Controller 中

func stopAni(){
self.resultView.stopAnimating()
ButtonAudioPlayer.stop()
ButtonAudioPlayer1.stop()
ButtonAudioPlayer2.stop()
ButtonAudioPlayer3.stop()
ButtonAudioPlayer4.stop()
ButtonAudioPlayer5.stop()
ButtonAudioPlayer6.stop()

不确定如何在第二个 View Controller 中调用此函数。

最佳答案

您可以创建一个委托(delegate),例如:

protocol StopAnimationDelegate{
func stopAnimations()
}

然后,在您的第一个 View Controller 上,您将采用此协议(protocol):

class FirstViewController : UIViewController, StopAnimationDelegate{
//..... here code

func stopAnimations(){
//Stop your animations or call your method stopAni here.
}

//.... here more code

@IBAction func openSecondViewController(sender:UIButton){
self.performSegueWithIdentifier("segue_first_second",sender:nil)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "segue_first_second"{
let secondViewController = segue.destinationViewController as! SecondViewController
secondViewController.delegate = self
}
}
}

在你的第二个 View Controller 上,你可以做类似的事情:

class SecondViewController: UIViewController{
var delegate:StopAnimationDelegate?

@override func viewDidLoad(){
delegate?.stopAnimations()
}
}

注意:这是实现这一目标的一种方法,但一切都取决于您需要做什么,例如,您可以在执行转场时简单地停止动画(但同样,这取决于您想要做什么)。

另一个选项,是使用 NSNotificationCenter 发布停止动画的通知,例如:

在第一个 View Controller 中:

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "stopAnim", name: "kStopAnimations", object: nil)
}

//...Your stopAnim method

//... More Code

}

class SecondViewController : UIViewController{

override func viewDidLoad() {
NSNotificationCenter.defaultCenter().postNotificationName("kStopAnimations", object: nil)
}

}

关于swift - 当第二个 View Controller 启动时停止第一个 View Controller 的动画快速编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37954307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com