gpt4 book ai didi

swift 委托(delegate)?

转载 作者:IT王子 更新时间:2023-10-29 04:55:42 27 4
gpt4 key购买 nike

如何快速创建一个委托(delegate),即 NSUserNotificationCenterDelegate

最佳答案

这里有一些关于两个 View Controller 之间委托(delegate)的帮助:

第 1 步:在 UIViewController 中制定一个您将要删除/将要发送数据的协议(protocol)。

protocol FooTwoViewControllerDelegate:class {
func myVCDidFinish(_ controller: FooTwoViewController, text: String)
}

第二步:在发送类(即UIViewcontroller)中声明委托(delegate)

class FooTwoViewController: UIViewController {
weak var delegate: FooTwoViewControllerDelegate?
[snip...]
}

Step3:在类方法中使用delegate将数据发送给接收方法,接收方法可以是任何采用该协议(protocol)的方法。

@IBAction func saveColor(_ sender: UIBarButtonItem) {
delegate?.myVCDidFinish(self, text: colorLabel.text) //assuming the delegate is assigned otherwise error
}

第四步:在接收类中采用协议(protocol)

class ViewController: UIViewController, FooTwoViewControllerDelegate {

第五步:实现委托(delegate)方法

func myVCDidFinish(_ controller: FooTwoViewController, text: String) {
colorLabel.text = "The Color is " + text
controller.navigationController.popViewController(animated: true)
}

第 6 步:在 prepareForSegue 中设置委托(delegate):

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "mySegue" {
let vc = segue.destination as! FooTwoViewController
vc.colorString = colorLabel.text
vc.delegate = self
}
}

这应该有效。这当然只是代码片段,但应该给你思路。有关此代码的详细说明,您可以在此处转到我的博客条目:

segues and delegates

如果您对委托(delegate)的幕后情况感兴趣,我确实在这里写过:

under the hood with delegates

关于 swift 委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099230/

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