视图控制器之间的通信(Communicating between view Controllers)

2019-10-19 03:57发布

我认为其中一个控制器有几个UISwitches,我想另一个视图控制器能够访问UISwitches。如果/和语句的值。 如何在Objective-C这样做呢?

Answer 1:

你可能不希望这样做。 如果你想有一个第二的ViewController有基于第一抛出交换机不同的行为,你应该只绑定切换到用户默认,你可以在你的应用程序随时随地阅读。

http://icodeblog.com/2008/10/03/iphone-programming-tutorial-savingretrieving-data-using-nsuserdefaults/



Answer 2:

这是因为它会创建视图控制器之间不需要依赖一个坏主意。

如果您仍然想这样做,只是通过与切换到第二视图控制器的第一个视图控制器的参考。 然后,在你的第二个视图控制器只需访问相应的UISwitch的on财产。

然而,不是走这样一条路,我强烈建议你创建一个自定义的类来保存每个UISwitch的布尔状态。 这个类的实例既可以是一个单独,或包含在应用程序委托。 看到这个答案对于如何使用这两种方法做到这一点。

自定义类更好,因为一个UISwitch只是表示在数据模型中某些属性的一种方式。 如果明天你与其他花哨的控制取代了UISwitch,第二视图控制器应该还是继续工作。 两个视图控制器具有与本自定义类的对象的引用。 每当有一个变化,第一控制器更新此对象。

类接口可以是这样的:

@interface DataValues : NSObject {
    BOOL first;
    BOOL second;
    BOOL third;
}

@property BOOL first;
@property BOOL second;
@property BOOL third;


文章来源: Communicating between view Controllers