gpt4 book ai didi

ios - 将数据从没有 Segue 的 VC 传递到非 VC 类

转载 作者:行者123 更新时间:2023-11-30 11:51:49 25 4
gpt4 key购买 nike

我通过segue将数据从ViewController1传递到ViewController2,但是如何将数据发送到Class?该类不是 ViewController。

  • ViewController1 有一个 UIPickerView 提供数据(字符串)。

  • 该字符串将完成 ViewController2 中所需的 URL。

类别

class A: SendDataFromDelegate {

func sendData(data: String) {
self.data = data
}

var delegate : SendDataFromDelegate?

ViewController1

@IBAction func Picker(_ sender: Any) {
var delegate: SendDataFromDelegate?
delegate?.sendData(data: data)
}

protocol SendDataFromDelegate {
func sendData(data : String)
}

这是一个好方法吗?

或者我应该在 class 中创建所有可能的 URL,并从 ViewController2 调用它们?

最佳答案

您应该创建一个具有委托(delegate)函数的协议(protocol),如下所示:

protocol ClassDelegate: class {
func doSomething()
}

在你的 A 类中,你应该这样实现该协议(protocol):

class A: ClassDelegate {
inAFunction(){
ViewController1.delegate = self
}

func sendData(data: String) {
self.data = data
}
}

在 viewController 中,您想要将数据发送到 A 类,您应该引用 A 类并使用委托(delegate)变量:

class ViewController1: UIViewController {
weak var delegate: ClassDelegate?
func clickHere(){
delegate.sendData()
}
}

当您使用 clickHere 函数时,它会触发 C 类 sendData 函数。

尝试一下;D

关于ios - 将数据从没有 Segue 的 VC 传递到非 VC 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48265674/

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