Objective C:从视图控制器访问变量到 NSObject
Posted
技术标签:
【中文标题】Objective C:从视图控制器访问变量到 NSObject【英文标题】:Objective C: Access Variable From View Controller To NSObject 【发布时间】:2017-12-13 15:31:52 【问题描述】:我又开始学习目标 c,我试图从我的 NSObject 类中的主视图控制器访问一个变量。
我该怎么做?
比如我已经声明了
UITextField *name;
我想在我的 NSObject 中使用它。
【问题讨论】:
你把它声明为属性还是类变量? @ReinierMelian 我已将其声明为属性,在这里,带有(读写,非原子) 我不太明白您试图访问变量的问题? @ReinierMelian 我已经在 ViewController.h 中声明了该变量,然后我想在 NSObject 中使用该变量,以便更改其值。 视图控制器和想要更新它的对象是什么关系? (实际上,这整个事情听起来倒退了。通常,控制器应该通过从数据模型请求信息来更新自己的属性,而不是通过将新数据推送给它。) 【参考方案1】:最好的做法是在这里实现委托模式。假设您要更改 UITextField 的值/内容,然后使用该值触发委托。在 ViewController 类中,设置委托并实现该委托方法。在该委托方法中,更新 UITextField 的值/内容。
还有一件事,请确保在主线程中更新 UITextField 的内容/值。 UI 相关的更改应始终在主线程中完成。
【讨论】:
【参考方案2】:您可以通过带有加号“+”+(type)anyMethod;
的方法引用 NSObject 类来获取变量。如果我正确理解你的意思
【讨论】:
以上是关于Objective C:从视图控制器访问变量到 NSObject的主要内容,如果未能解决你的问题,请参考以下文章
从 xib 文件移动到 Objective C 中的视图控制器
无法从 Objective-C 视图控制器访问 Swift var - iOS
是否可以使用情节提要从 swift 类中调用 Objective c 视图控制器类?
Objective C - 从视图控制器设置 UIView 子类的标签属性