В настоящее время я использую следующий код в AppDelegate, чтобы UIBarButtonItem выполнял роль переключателя и настраивал переменную BOOL в классе RootViewController:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
...
toggleSwitch = [[UIBarButtonItem alloc] initWithTitle:@"English" style:UIBarButtonItemStylePlain target:self action:@selector(togglePress:)];
...
}
А затем селектор появляется позже в AppDelegate:
-(IBAction) togglePress:(id)sender {
RootViewController *viewController;
if (viewController.searchEnglish) {
viewController.searchEnglish = NO;
toggleSwitch.title = @"English";
}
else {
viewController.searchEnglish = YES;
toggleSwitch.title = @"OtherLanguage";
}
}
Я в основном проверяю, установлено ли для BOOL из класса RootViewController значение YES, а если для него задано значение NO, и измените заголовок кнопки на «OtherLanguage», в противном случае выполните обратное. Однако когда я запускаю программу и нажимаю кнопку, переменная BOOL и заголовок не меняются, приложение зависает и вылетает. Что я делаю не так?