Как предотвратить переход к другой сцене раскадровки, если все данные не присутствуют в текущей сцене?

У меня есть приложение для iPad (XCode 4.6, iOS 6.2, ARC и раскадровки с UITabController). Сцена setup отображается первой, если необходимые данные отсутствуют; Я не хочу, чтобы пользователь мог покинуть эту сцену, если во всех обязательных полях нет действительных данных.

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

У кого-нибудь есть идеи, как предотвратить переход к другой сцене, если необходимые данные отсутствуют?


person SpokaneDude    schedule 02.09.2013    source источник


Ответы (1)


Можете ли вы отключить кнопку перехода к следующей сцене, пока не будут введены все данные? Имейте функцию, которая проверяет, чтобы убедиться, что данные во всех полях проверяются каждый раз, когда поля либо редактируются, либо когда редактирование завершается. Затем, если есть действительные данные во всех полях, установленных

    [nextSceneButton setEnabled:YES]; // To toggle enabled / disabled

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

person Steven Marlowe    schedule 02.09.2013
comment
У меня уже есть проверки на действительные данные, когда пользователь действует нормально (т.е. заполняет данные)... проблема в том, что пользователь ничего НЕ вводит, а просто нажимает другую кнопку tabBar. Мне нужен способ перехватить это касание и проверить, есть данные или нет. - person SpokaneDude; 02.09.2013
comment
Я нашел эту ссылку, реализованную это и работает так, как я хотел. Спасибо за помощь... - person SpokaneDude; 02.09.2013
comment
Может быть, отключить кнопку tabBar, пока данные не будут проверены? // Отключить UITabBarController.tabbar.userInteractionEnabled = NO; // Включить UITabBarController.tabbar.userInteractionEnabled = YES; - person Steven Marlowe; 03.09.2013