Раскадровка - автоматический возврат к предыдущему экрану при условии - PullRequest
2 голосов
/ 13 декабря 2011

Я использую раскадровку и пытаюсь вернуться к предыдущему экрану при выполнении определенного условия.То есть, имя пользователя не найдено при входе в систему.

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

Я проверяю нажатие кнопки пользователя в UIAlertView на наличие сигнала для возврата с помощью этого метода.

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
   [self.navigationController popViewControllerAnimated:YES];

}

IЯ пытаюсь использовать одну строку в этом методе, чтобы вернуться к предыдущему экрану, но ничего не происходит.Я предполагаю, что раскадровки работают по-другому, но я не знаю синтаксиса для возврата к предыдущему экрану с ними.

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Если ваша раскадровка выдвигает контроллер представления, вы всегда можете запрограммировать его. это не проблема. Проблема в том, что UIAlertView отображается с использованием анимации, и поэтому вы не можете выполнить другую анимацию за один раз.

  1. Итак, у вас есть два варианта. Должен работать контроллер представления без анимации, но тогда пользователь может не понять, куда он идет.

  2. Вы можете поместить вызов, который выводит viewcontroller в вспомогательный метод, и вызвать этот метод следующим образом: [self performSelector:@selector(myPopHelperMethod:) withObject:nil afterDelay:0.8f]. Это должно вывести ваш контроллер представления через 0,8 секунды, что достаточно, чтобы позволить UIAlertView завершить анимацию.

0 голосов
/ 13 декабря 2011

Я бы предположил, что ваш self.navigationController равен нулю, что делает ваш метод недоступным.

...