0

我目前在 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 变量和标题没有改变,应用程序冻结并崩溃。我究竟做错了什么?

4

2 回答 2

0

您正在分配一个新的 viewController,设置切换,然后释放它。本质上,你什么也没做。要完成(我认为)您正在尝试做的事情,请删除释放和分配,并将 viewController 设置为显示切换的实际视图控制器。

于 2009-07-20T20:35:01.500 回答
0

您没有将 viewController 设置为您显示的代码中的任何内容,您的 rootviewController 为空......所以应用程序当然会崩溃

于 2009-07-20T20:51:25.460 回答