1

我的一个视图控制器有几个 UISwitches,我希望另一个视图控制器能够访问 If/and 语句的 UISwitches 的值。我如何在 Objective-c 中做到这一点?

4

2 回答 2

1

这是一个坏主意,因为它会在视图控制器之间创建不必要的依赖关系。

如果您仍然想这样做,只需将带有开关的第一个视图控制器的引用传递给第二个视图控制器。然后,在您的第二个视图控制器中,只需访问相应的 UISwitch 的on属性。

但是,我强烈建议您创建一个自定义类来保存每个 UISwitch 的布尔状态,而不是走那条路。此类的实例可以是单例,也可以包含在应用程序委托中。请参阅此答案以了解如何使用这两种方法。

自定义类更好,因为 UISwitch 只是表示数据模型中某些属性的一种方式。如果明天你用另一个花哨的控件替换了 UISwitch,第二个视图控制器应该仍然可以继续工作。两个视图控制器都引用了这个自定义类的对象。只要有变化,第一个控制器就会更新这个对象。

类接口可能是这样的:

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

@property BOOL first;
@property BOOL second;
@property BOOL third;
于 2010-01-17T01:24:53.787 回答
0

你可能不想这样做。如果您希望第二个 ViewController 基于第一个中抛出的开关具有不同的行为,您应该将开关绑定到用户默认值,您可以在应用程序的任何位置读取它。

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

于 2010-01-17T00:59:13.347 回答