0

我有两个视图控制器和笔尖。我用切换开关填充了一个视图控制器,并在其头文件中声明了这一点:

@public UISwitch *toggleSwitch;

并将其公开为这样的属性:

@property (nonatomic,retain) IBOutlet UISwitch *toggleSwitch;

我还将开关与toggleSwitch插座连接。然后我在我的另一个视图控制器中使用了这个开关,如下所示:

theViewControllerWhereIDeclaredTheSwitch.toggleSwitch.on = YES;

尽管默认情况下开关处于打开状态时一切正常,但是当我关闭开关时,它引发了异常:main.m 文件中的“线程 1:信号 SIGABRT”。我在使用 Xcode 时经常遇到这个错误,这个错误真的让我很头疼。请帮忙。

4

2 回答 2

5

您不应在多个UIViewControllers.

更好的方法是BOOL在您自己的对象中共享甚至封装状态,继承自NSObject并在 2 之间传递UIViewControllers

于 2012-07-13T07:41:01.513 回答
1

@werner 是对的。

在对关联的控制器和视图进行编程时,您正在实施 NVC 模式。这个想法是你有这个控制器对象,它是视图和保存数据的模型之间的大脑。因此,您应该在应用程序中执行的操作不是共享开关状态,而是在触发开关时更新模型中的 BOOL 值并与两个控制器共享模型,以便了解两个控制器中的值。

(CF:维基百科

于 2012-07-13T08:11:29.383 回答