gpt4 book ai didi

ios - 将自定义 UIView 中的 UITextField/UITableView 的委托(delegate)设置为管理 ViewController

转载 作者:行者123 更新时间:2023-11-29 13:21:07 25 4
gpt4 key购买 nike

我有一个 CustomView UIView委托(delegate)我的类 screenUI我在其中以编程方式创建和定位 UI 元素,其中包括多个 UITextFields 和一个 UITableView。我还有一个 UIViewController在它的 loadView 中,我将 CustomView 分配给 self.view。

我这样做是为了最好地保持 View 和 Controller 的凝聚力。

我的问题是如何设置 UITextFields 的委托(delegate)和 UITableView在 CustomView 内部管理 UIViewController

据我了解,UITextFieldDelegate和所有其他协议(protocol)方法应该在 Controller 而不是 View 中实现,但我想避免在 View Controller 中设置项目的委托(delegate)(例如 textField1.delegate = selfUIViewController 类而不是 textField1.delegate = <value 用于设置UIViewController 作为委托(delegate)> 在我的 CustomView 类中)以保持我的代码更清晰。

谢谢。

最佳答案

您可以在自定义 View 上拥有一个delegate 属性:

customView.delegate = self;
self.view = customView;

在委托(delegate) setter 中,您可以转发职责:

-(void) setDelegate:(id<*the protocols you need*>) del
{
_textField.delegate = del;
...
}

您的自定义 View 上可以有不止一种类型的委托(delegate),这取决于您的需要,但一个实现所有协议(protocol)的委托(delegate)通常就足够了。

关于ios - 将自定义 UIView 中的 UITextField/UITableView 的委托(delegate)设置为管理 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14320661/

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