Неустойчивое поведение при загрузке новых представлений

Я пытался несколько дней решить проблему с ошибкой в ​​моем коде, но я не могу понять это.

Это мое первое приложение для iOS и пост здесь, так что будьте спокойны!

По сути, у меня есть приложение, в котором есть кнопка "Создать" и кнопка "Загрузить". Когда кнопка "Создать" нажата, ее положение перемещается и создается текстовое поле для ввода текста пользователем. Когда кнопка "загрузить" нажата, позиция снова перемещается, но создается таблица для пользователя, чтобы выбрать предыдущие имена файлов.

Если пользователь нажимает кнопку "Создать", заполняет текстовое поле и снова нажимает "Создать", приложение переходит к новому виду совершенно. Это то же самое, когда пользователь нажимает "load", выбирает имя файла в табличном представлении и снова нажимает "load", чтобы перейти к новому представлению. Они оба переходят к одному и тому же мнению, и все это прекрасно работает.

Однако, если пользователь нажимает кнопку "Создать" (которая анимирует кнопки и создает текстовое поле), а затем щелкает прочь, возвращая представление к исходному макету, а затем решает загрузить предыдущий файл (который снова анимирует кнопки, но на этот раз создает табличное представление), новое представление загружается очень странно! Вместо того, чтобы анимировать снизу, чтобы заполнить экран, он появляется на полпути по сравнению с предыдущим видом, перемещается немного вверх, а затем вниз, чтобы закрыть старый вид.

Что еще более странно, так это то, что странная загрузка представлений продолжается во всех представлениях, когда возникает эта ошибка.

Я программно запускаю сегменты, используя

  [self performSegueWithIdentifier:@"First" sender:sender];

а также

  [self performSegueWithIdentifier:@"Second" sender:sender];

И я убедился, что сегменты помечены правильно.

У кого-нибудь есть подобный опыт, и им удалось исправить проблему? Я действительно пытался загрузить фотографии, чтобы показать проблему лучше, но мне не хватает очков:(

Я загрузил на YouTube видео об ошибке, которая должна более четко показать проблему:

http://youtu.be/rB5qpF2ImSk

1 ответ

Ваше видео демонстрирует, в чем, я думаю, ваша проблема. Когда вы начинаете со страницы Планировщика Питания и переходите к следующему контроллеру, похоже, что вы делаете модальную презентацию. Однако, когда вы нажимаете на то, что выглядит как пользовательская стрелка назад, вы представляете другой экземпляр вашего представления Планировщика еды вместо того, чтобы возвращаться к тому, с которого вы пришли (текущий вид должен скользить вниз и за пределы экрана, когда вы закрываете модальный вид). При обратном переходе к предыдущему контроллеру вы должны использовать только раскручивающийся переход, если вы используете переходы. Альтернатива состоит в том, чтобы закрыть контроллер в коде, используя dismissViewControllerAnimate: завершение:.

Другие вопросы по тегам