我试图通过将相关代码块分成不同的类来简化我的生活。
但我遇到了一个问题:从这些类中更改ViewController属性(如UITextField.text等)。
我尝试过创建协议,但这确实很混乱所以我想找到一种新的方法来实现这一目标。
那么,是否有一种直接从外部类更改ViewController属性的简单方法?我正在使用Swift 3顺便说一句。
感谢你们的帮助。
答案 0 :(得分:0)
如果要更改标签的对象是控制器拥有或提供的子对象,则需要使用委托与控制器进行通信。您在该对象中声明要更改控制器标签的协议,并声明该协议类型的弱属性,称为委托。当控制器创建该对象时,您将该对象的委托属性设置为控制器本身(如果该对象是控制器的ownee,声明该属性弱,则不会创建保留周期)。在控制器中,您实现协议中声明的方法,在实现中您可以更改标签。 另一种情况是控制器由您想要更改标签的对象拥有或呈现,在这种情况下,您只需要一个公共方法来执行此操作。