Как использовать таблицу UIActionSheet внутри оператора if?

У меня есть инструкция if которая работает нормально, но мне нужно добавить внутри нее второй оператор if и я не могу понять, как правильно это сделать.

Вот мой код:

 -(IBAction)xButton { if([_hasUserTakenAPhoto isEqual: @"YES"]) { _xButtonAfterPhotoTaken = [[UIActionSheet alloc] initWithTitle:@"Delete" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:nil]; [_xButtonAfterPhotoTaken showInView:self.view]; NSString *title = [_xButtonAfterPhotoTaken buttonTitleAtIndex:1]; if(title isEqualToString:@"Delete") { [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self]; } } else { [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self]; } } 

Я получаю ошибки, когда добавляю во второй оператор if:

 if(title isEqualToString:@"Delete") { [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self]; } 

Я попытался сделать утверждение 2 if «else if», но тогда он не позволит мне получить доступ к объекту NSString, называемому «title». Есть ли более простой способ сделать это, или я должен просто сделать заголовок глобальной переменной?

UIActionSheet не используются таким образом:

 - (IBAction)xButton:(UIButton*)sender { if ([_hasUserTakenAPhoto isEqual:@"YES"]) { _xButtonAfterPhotoTaken = [[UIActionSheet alloc] initWithTitle:@"Delete Photo?" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Delete" otherButtonTitles:nil]; [_xButtonAfterPhotoTaken showInView:self.view]; } else { [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self]; } } - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { // Check if it's the correct action sheet and the delete button (the only one) has been selected. if (actionSheet == _xButtonAfterPhotoTaken && buttonIndex == 0) { [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self]; } } - (void)actionSheetCancel:(UIActionSheet *)actionSheet { NSLog(@"Canceled"); } 

Вы должны понимать, что элементы интерфейса не являются «мгновенными», происходит много асинхронных операций. Например, при представлении UIActionSheet поток не ждет ответа пользователя «да» или «нет», он продолжает работать.

Вот почему есть делегаты и блоки, вы представляете UIActionSheet , а с делегатом вы говорите: «Я позабочусь об этом, когда пользователь на самом деле нажмет на него».

Вам было бы интересно, почему бы просто не подождать, пока он его выберет? Основной поток заботится об обновлении интерфейса, анимации и извлечении пользовательского ввода (касания, нажатия клавиш и т. Д.) И даже запуск NSTimers которые являются индексом основного NSRunLoop . Остановка основного потока блокирует интерфейс.

Пытаться

 - (IBAction)xButton { NSString *title; if ([_hasUserTakenAPhoto isEqual:@"YES"]) { _xButtonAfterPhotoTaken = [[UIActionSheet alloc] initWithTitle:@"Delete" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:nil]; [_xButtonAfterPhotoTaken showInView:self.view]; title = [_xButtonAfterPhotoTaken buttonTitleAtIndex:1]; if ([title isEqualToString:@"Delete"]) { [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self]; } } else { [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self]; } } 
  • UITableView, заменить вид ячейки на выбор
  • Как приостановить dispatch_queue_t и созданные им очереди
  • проверка доступности на определенной странице в URL-адресе
  • app зависает на executeFetchRequest
  • добавление сегментированного управления с помощью панели навигации
  • Освободить память, используемую CGContextDrawPDFPage
  • iOS - как пересылать штрихи к основному uiview
  • Каков правильный способ удаления строки из UITableView?
  • Нажмите «Распознавание» для UIImageView в UITableViewCell
  • Swift UItableView Пользовательская ячейка программно (документация)?
  • Попытка отклонить UIAlertController с неизвестным ведущим
  • Interesting Posts

    IOS7: uisearchdisplaycontroller всегда показывает панель видимости

    Каркасы Cocoapods не устанавливаются должным образом

    многократная аннотация в переводе карты

    Запись звука на iPhone с наименьшим размером файла

    OpenUrl затягивает приложение более 10 секунд

    Как использовать методы dataSource и делегирования с помощью RxSwift

    UIWebview, создающий SVG «на лету»

    Кнопки панели инструментов мигают (быстро затухают) при нажатии на контроллер просмотра анимированный

    Является ли изменение UITableView? Можно ли назначить другой кадр?

    Введите «String!» не соответствует протоколу «Equatable»

    UIPopoverController Dismissal

    Как протестировать печать из приложения iPhone, если у нас нет принтеров с поддержкой AirPrint?

    UIDocumentInteractionController не показывает параметр Mail

    Как написать файл из расширения общего доступа iOS8, которое может прочитать хост-приложение?

    Изменение изображения позиции вкладки и цвета текста iOS

    Давайте будем гением компьютера.