我目前在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变量和标题不会更改,应用程序会冻结并崩溃。我做错了什么?
答案 0 :(得分:0)
您正在分配一个新的viewController,设置切换,然后释放它。从本质上讲,你什么都不做。为了完成你想要做的事情(我认为),删除发布和分配,并将viewController设置为显示切换的实际视图控制器。
答案 1 :(得分:0)
你没有在你显示的代码中设置viewController,你的rootviewController是null ...所以当然应用程序会崩溃