的UIBarButtonItem拨动开关布尔

问题描述:

我目前正在使用中的AppDelegate下面的代码做出的UIBarButtonItem充当开关和调节的RootViewController的班布尔变量:的UIBarButtonItem拨动开关布尔

- (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变量和标题不会更改,应用程序会冻结并崩溃。我究竟做错了什么?

您没有设置在你显示的代码的viewController牛逼Ø什么,你RootViewController的是空...所以ofcourse应用程序会崩溃

你正在分配一个新的viewController,设置切换,然后释放它。基本上,你什么都不做。为了完成你想要做的(我认为),删除发布和分配,并将viewController设置为显示切换的实际视图控制器。

+0

当这样的程序似乎当我按下按钮崩溃。 – Kulpreet 2009-07-20 20:41:58