2010-01-04 72 views
0

我有一个标签栏应用程序。其中一个控制器是一个“偏好页面”。我试图做的是从应用程序委托的applicationWillTerminate方法访问位于“首选项页面”控制器上的uiswitch ivar,但是我只获取默认的IUSwitch值。从App Delegate访问另一个视图控制器IBOutlet

下面是代码:

- (void)applicationWillTerminate:(UIApplication *)application { 
    SettingsController *settings = [[SettingsController alloc] initWithNibName:@"SettingsView" bundle:nil]]; 
    NSLog(@"settings preference value: %d", [settings isOn]); 
} 

回答

0

这不会工作,因为你基本上是创建另一个实例新SettingsController的这当然不包括在原SettingsController将设置伊娃的参考。你需要做的是保存对原始SettingdController的引用,无论是在应用程序委托中还是在单例对象中。

Here's a good blog关于使用应用程序委托或单例方法来传递全局引用。我会亲自使用单例方法。

+0

你是完全正确的。 (忘记提及我承认我目前的方法存在缺陷)。有一种直接的方式来完成我正在做的事情,还是应该走另一条路? – 2010-01-04 03:48:49

+0

请参阅我在答案中提供的链接,了解如何处理此问题。 – ennuikiller 2010-01-04 03:53:21

相关问题