UIBarButtonItem как тумблер для логического значения - PullRequest
0 голосов
/ 21 июля 2009

В настоящее время я использую следующий код в 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 и заголовок не меняются, приложение зависает и вылетает. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 21 июля 2009

Вы не устанавливаете viewController для чего-либо в отображаемом вами коде, ваш rootviewController равен нулю ... так что, конечно, приложение вылетит

0 голосов
/ 21 июля 2009

Вы выделяете новый viewController, устанавливаете переключатель, затем отпускаете его. По сути, вы ничего не делаете. Чтобы выполнить то, что (я думаю) вы пытаетесь сделать, удалите освобождение и выделение и установите viewController в качестве фактического контроллера представления, отображающего переключатель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...