gpt4 book ai didi

ios - 在 swift 中关闭模态 viewController 时传递数据

转载 作者:IT王子 更新时间:2023-10-29 05:25:19 26 4
gpt4 key购买 nike

我正在尝试将数据从modal ViewController 传递到他的source ViewController。我想我必须使用委托(delegate),但它不起作用。

protocol communicationControllerCamera{
func backFromCamera()
}

class Camera: UIViewController{
var delegate: communicationControllerCamera

init(){
self.delegate.backFromCamera()
}
}


class SceneBuilder: UIViewController, communicationControllerCamera{
func backFromCamera(){ // Never called
println("YEAHH")
}
}

它没有调用 backFromCamera 方法。我做错了什么?

最佳答案

您没有设置委托(delegate),因此当您尝试调用 backFromCamera() 时它是空的。

这是一个您可以测试的简单工作示例。请注意委托(delegate)的可选类型 (?)。

// Camera class
protocol communicationControllerCamera {
func backFromCamera()
}

class Camera: UIViewController {
var delegate: communicationControllerCamera? = nil

override func viewDidLoad() {
super.viewDidLoad()
self.delegate?.backFromCamera()
}
}



// SceneBuilder class
class SceneBuilder: UIViewController, communicationControllerCamera {

override func viewDidLoad() {
super.viewDidLoad()
}

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)

var myCamera = Camera()
myCamera.delegate = self

self.presentModalViewController(myCamera, animated: true)
}

func backFromCamera() {
println("Back from camera")
}
}

您可以在Apple's Swift documentation 中找到您需要的所有信息。 .

关于ios - 在 swift 中关闭模态 viewController 时传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25759945/

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