У меня эти ViewControllers добавлены в раскадровку:
Никто не связан с пользовательским классом, все из чистой раскадровки.
Видео на симулятор iPhone на iOS7
Это происходит только при использовании AutoLayout на iOS7.
Кто-нибудь еще видел это?
У меня эти ViewControllers добавлены в раскадровку:
Никто не связан с пользовательским классом, все из чистой раскадровки.
Видео на симулятор iPhone на iOS7
Это происходит только при использовании AutoLayout на iOS7.
Кто-нибудь еще видел это?
Я думаю, что эта проблема возникает, когда view получает автозапуск и устанавливает его размер на главный размер экрана. В iOS7 навигация анимации нажимается до размера вида, чтобы мы могли видеть, что анимация. Не беспокойтесь, это хорошо работает в ios8.0 и более поздних версиях. Для ios 7.0 вы можете указать размер представления в viewDidLoad, чтобы он мог настроить размер до его появления.
Изменить 2:
Как упоминалось в комментариях, я не могу воспроизвести проблему с вашим образцовым проектом. Тем не менее, я заметил, что ваш проект настроен с целью развертывания, которая является iOS 8.3. Вот шаги, чтобы исправить это:
Шаг 1: выберите проект в Xcode Project Navigator. Шаг 2. Убедитесь, что вы выбрали свой проект в левом столбце редактора проекта, а не цели Шаг 3. Выберите вкладку "Настройки сборки". Шаг 4: Измените цель развертывания iOS для iOS 7.1 или iOS 7.0 в зависимости от того, с какой ОС вы тестируете. Шаг 5: Создайте и запустите.
Надеюсь, это поможет вам.
Edit:
Шаг1. Выберите UIViewController
с меткой 14 и на третьей вкладке правой панели Xcode введите идентификатор раскадровки, например vc14.
Step2. Выберите UIViewController
с меткой 12 и на той же вкладке, введите пользовательский класс, например ViewController
.
Step3. Удалите действие триггера с вашей кнопки и замените его на @IBAction
в ViewController
Step4. Добавьте этот код в свой @IBAction
в ViewController
:
@IBAction func push(sender: AnyObject) {
var vc14 = self.storyboard?.instantiateViewControllerWithIdentifier("vc14") as! UIViewController
vc14.view.layoutIfNeeded()
self.navigationController?.pushViewController(vc14, animated: true)
}
Объяснение:
Странная анимация возникает, потому что макет никогда не возникал до того, как segue нажимает UIViewController
в UINavigationController
. iOS 7 не защищал надлежащим образом от такого сценария, вручную вызывая layoutIfNeeded
перед входом в блок анимации, и когда макет наконец-то возникает, он запускает неявные анимации. В примере кода, который я вам предоставил, я вручную запускаю макет, прежде чем нажимать ViewController
на стек, чтобы избежать этой проблемы.
Я думаю, что вы нажмете ⌘T. поэтому запускается медленная анимация. Проверьте все используемые вами симуляторы.
Отладка- > Медленная анимация
Я прикрепляю изображение, проверяю его.