Возвращение значения BOOL из метода делегата alertview: - (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex - PullRequest
0 голосов
/ 13 января 2012

Я добавил контроллер панели вкладок в MainWindow.xib, который отображает 5 вкладок и имеет метод делегата контроллера панели вкладок: shouldSelectViewController в моем делегате приложения, который возвращает логическое значение (ДА или НЕТ).

В этом методе делегата я показываю пользователю предупреждение (если пользователь переходит с вкладки 1 на любую другую вкладку).Это предупреждение содержит 2 кнопки: OK и Отмена.

Если пользователь нажимает кнопку ОК, то я хочу, чтобы метод делегата возвращал YES (чтобы пользователь мог перейти на другие вкладки), и если пользователь выбрал Отмена (если он хочет остаться только на вкладке 1),затем я хочу, чтобы метод возвратил NO.

Итак, в основном я хочу, чтобы метод shouldSelectViewController прекратил выполнение, пока на экране не появится предупреждение о времени.Есть ли способ вернуть BOOL из метода делегата моего представления предупреждений, который, в свою очередь, может быть возвращен shouldSelectViewController ИЛИ какому-либо потоковому решению, которое может быть использовано в этой ситуации ??

1 Ответ

2 голосов
/ 13 января 2012

попробуйте

в .ч

UIViewController *tmpController;

в .м

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
tmpController = viewController;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
[alert show];
[alert release];
return NO;
}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex) {
    self.tabBarController.selectedViewController = tmpController;
}
}
...