現在、AppDelegate で次のコードを使用して、UIBarButtonItem をスイッチとして機能させ、RootViewController クラスの BOOL 変数を調整しています。
- (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";
}
}
基本的に、RootViewController クラスの BOOL が YES に設定されているかどうかを確認し、NO に設定されている場合はボタンのタイトルを「OtherLanguage」に変更し、それ以外の場合はその逆を行います。しかし、プログラムを実行してボタンをクリックすると、BOOL 変数とタイトルが変更されず、アプリケーションがフリーズしてクラッシュします。私は何を間違っていますか?