gpt4 book ai didi

ios - 从其他类访问 UI 元素

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

  1. ViewController 包含如下元素UIPickerView 和两个 UITextField
  2. PickerViewController,其中实现了UIPickerViewDelegateUIPickerViewDataSource方法(didSelectRow, titleForRow,以及其他的)。

UIPickerView 中选择一个元素后,我需要更改其中一个 UITextField 的文本。我不能这样做,因为 didSelectRow: 是在 PickerViewController 中实现的,但是 UITextField 包含在 ViewController 中。我怎样才能获得访问权限?最重要的是,我怎样才能正确地做到这一点?

我应该在另一个类中实现选择器方法,还是将它们放在 ViewController 中?

最佳答案

how can I do that correctly?

这是一个比简单地让 PickerViewController 更改其父 View Controller 中的文本字段更好的问题,因为它确实不应该。

我想到了两种可能性:选择器 Controller 可以将某种消息直接传递回另一个 Controller ,或者它可以更新一个模型,另一个 Controller 在选择器 View 完成后从中读取。

第一个可能最容易实现的方法是为选择器 Controller 提供一个“选择后”处理程序 block ,该处理程序 block 将具有必要的数据作为参数,并且父 Controller 在另一个上定义和设置。在选择器 Controller 被关闭之前,它应该调用 block ,传递选择并执行其他 Controller 指定的任何操作。

第二个意味着父 Controller 和选择器 Controller 必须访问同一个数据对象。在不知道发生了什么的情况下,很难准确,但一个很好的可能性是父 Controller 实际上选择器 Controller 它应该从中读取的模型对象,而不是选择器 Controller 获取它自己。选择器 Controller 只是更改它传递的对象。

关于ios - 从其他类访问 UI 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38313256/

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