gpt4 book ai didi

ios - 协议(protocol)在两个 UITbaleViewController 之间不起作用

转载 作者:行者123 更新时间:2023-11-29 01:16:23 24 4
gpt4 key购买 nike

该应用旨在让用户点击表 A 中的单元格,然后转到表 B 添加自定义类别,最后将此类别名称发送回表 A 并更改类别标签。

它似乎不适用于以下代码

表A:

class AddNote: UITableViewController, CatDelegate {

func selectCategory(theCatgory:String){
customCategory.text = theCatgory
}
override func viewDidLoad() {
// ....
}
}

表 B:

protocol CatDelegate:NSObjectProtocol{
func selectCategory(theCatgory:String)
}

class SetCategory:UITableViewController{

var theDelegate:CatDelegate?

override func viewDidLoad() {
// test to print out the string
self.theDelegate?.selectCategory("My Category")
}
// ......

}

有人可以帮忙吗?谢谢。

最佳答案

从您的代码中我可以看出,当您呈现第二个 View Controller 时,您实际上并没有设置委托(delegate)。

线

self.theDelegate?.selectCategory("My Category")

不会调用selectCategory()也不会因为(良好做法!)? 而引发异常运算符 if self.theDelegatenil .它只会默默地什么都不做。

作为快速检查,您可以替换 ?通过 !用于开发 - 当它遇到 nil 时会引发运行时异常.

关于ios - 协议(protocol)在两个 UITbaleViewController 之间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35130625/

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