Я предлагаю вам добавить свойство BOOL в AppDelegate.h:
@property (nonatomic) BOOL isPrivacyPolicyOn
и установить его при изменении значения UISwitch в PrivacyPolicy (сначала необходимо подключить переключатель из Interface Builder к классу PrivacyPolicy):
- (IBAction)switchChanged:(id)sender {
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.isPrivacyPolicyOn = [self.switchAuto isOn];
}
(Не забудьте импортировать AppDelegate.h в PrivacyPolicy)
Таким образом, в любом методе, который вы используете в AppDelegate, вам просто нужно проверить его значение isPrivacyPolicyOn, а не получить доступ кСвойство view (что не очень хорошая идея):
if (self.isPrivacyPolicyOn) {
/* do stuff */
}
Другой подход: используйте NSUserDefaults, так что вы сохраняете полностью несвязанными AppDelegate и PrivacyPolicy (что всегда хорошо).
В IBAction переключателя PrivacyPolicy вы устанавливаете значение в userdefaults:
- (IBAction)switchChanged:(id)sender {
NSNumber *switchValue = [NSNumber numberWithBool:[self.privacySwitch isOn]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:switchValue forKey:@"privacySwitch"];
}
И в любом методе вашего AppDelegate:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSNumber *privacySwitchValue = [defaults objectForKey:@"privacySwitch"];
BOOL isPrivacyOn = [privacySwitchValue boolValue];
Таким образом, значение устанавливаетсяпользователь будет энергонезависимым, и вы сможете проверить его в любое время.В этом случае проверка его в didFinishLaunchingWithOptions будет работать как положено.