Ios 更改不同类中对象的值

Ios 更改不同类中对象的值,ios,objective-c,cocoa-touch,cocoa,Ios,Objective C,Cocoa Touch,Cocoa,我有一个ViewController.m,上面有一个ui按钮和一个UIWebView。 我将UIWebView子类化为一个类,该类现在称为MyWebView.m 从MyWebView.m 我曾考虑过NSUserDefaults,但我觉得这是最糟糕的方式 另一个想法是复制下一行并将其添加到MyWebView.h: @property (weak, nonatomic) IBOutlet UIButton *myButton; 并将其连接到ViewController.m中的按钮,但我也不确定这样

我有一个
ViewController.m
,上面有一个
ui按钮
和一个
UIWebView
。 我将
UIWebView
子类化为一个类,该类现在称为
MyWebView.m

MyWebView.m
我曾考虑过NSUserDefaults,但我觉得这是最糟糕的方式

另一个想法是复制下一行并将其添加到
MyWebView.h

@property (weak, nonatomic) IBOutlet UIButton *myButton;

并将其连接到ViewController.m中的按钮,但我也不确定这样做是否正确。

您可以使用app delegate类通过应用程序持久化数据,但优秀的程序员也不推荐这样做


另一种方法是使用Singleton类。这将在每个应用程序会话中仅创建一个对象,因此您可以在整个应用程序中使用该值,也可以修改和访问该值。这是一种纯粹的方法。你可以看看按钮标题在概念上代表了什么?确定该属性,并将其作为web视图的字符串属性公开,然后让视图控制器使用键值观察该属性。或者,使用自己的协议扩展UIWebViewDelegate,并将视图控制器自身设置为web视图的委托。然后让web视图通知其委托此值已更改。

我的项目已经有一个处理其他内容的singleton类。我想在那里加一个按钮插座感觉很奇怪。我是否应该将上面的代码行添加到我的singleton.h文件中,并将其连接到故事板中的按钮上?这不起作用。我无法将我的按钮连接到singleton类。所以视图控制器知道web视图?你说不,但也说视图控制器在它的视图中有它。是的。没有更好的面向对象解决方案吗?用户默认值和通知不喜欢这样使用,到底是什么问题?什么是“出口位置值”?