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 子类的标签属性

Objective-C:如何将信号从视图发送到视图控制器以更改视图?

从一个视图控制器访问 CLLocationManager 变量到另一个视图控制器