gpt4 book ai didi

ios - 设置两个 View 之间的委托(delegate)关系并发送消息

转载 作者:搜寻专家 更新时间:2023-11-01 05:58:55 25 4
gpt4 key购买 nike

在 iOS 中,我正在使用 Swift 构建应用程序。我有一个 View ,其中设置了一个容器 View ,链接了一个嵌入式 View 。这是使用 Storyboard设置的。

如何在 Swift 代码中设置 View 之间的委托(delegate)关系,以便我可以在一个 View 中从另一个 View 发送消息/触发函数?

如有任何帮助,我们将不胜感激!

最佳答案

假设您有两个 View ViewAViewB

ViewB 的实例是在 ViewA 中创建的,因此 ViewA 可以向 ViewB 的实例发送消息,但是对于相反的情况我们需要实现委托(delegate)(以便使用委托(delegate) ViewB 的 实例可以向 ViewA 发送消息)

按照以下步骤实现委托(delegate)

1) 在ViewB中创建协议(protocol)为

protocol ViewBDelegate{
func delegateMethod(controller:ViewB, text:String)
}

2) 在发送者类中声明委托(delegate)

class ViewB: UIView {
var delegate: ViewBDelegate! = nil
}

3) 使用类中的方法调用委托(delegate)方法as

@IBAction func callDelegateMethod(sender : UIBarButtonItem) {
delegate!. delegateMethod(self, text: colorLabel.text)
//assuming the delegate is assigned otherwise error
}

4)采用ClassA中的协议(protocol)

class ViewA: UIView, ViewBDelegate {

5) 实现委托(delegate)

func delegateMethod(controller: ViewB, text: String) {
label.text = "The text is " + text
}

6) 设置委托(delegate)

override func anyFuction() 
{
// create ViewB instance and set the delegate
viewB.delegate = self
}

注意:这只是两个类之间swift委托(delegate)的粗略想法,您可以根据您的要求进行定制。

关于ios - 设置两个 View 之间的委托(delegate)关系并发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799786/

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