У меня была проблема, когда UIViewController A выполнял pushViewController для нажатия UIViewController B, анимация push останавливается на уровне около 25%, останавливается, а затем скользит B в остальной части пути.
Этот DIDЭтого не происходит в iOS 6, но как только я начал использовать iOS 7 в качестве базового SDK в XCode 5, это начало происходить.
Исправление состоит в том, что в контроллере представления B не было установлено backgroundColor в его корневом представлении.(корневым представлением является значение viewController.view, которое вы обычно устанавливаете в loadView).Установка backgroundColor в инициализаторе этого корневого представления устранила проблему.
Мне удалось исправить это следующим образом:
// CASE 1: The root view for a UIViewController subclass that had a halting animation
- (id)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame])) {
// Do some initialization ...
// self.backgroundColor was NOT being set
// and animation in pushViewController was slow and stopped at 25% and paused
}
return self;
}
// CASE 2: HERE IS THE FIX
- (id)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame])) {
// Do some initialization ...
// Set self.backgroundColor for the fix!
// and animation in pushViewController is no longer slow and and no longer stopped at 25% and paused
self.backgroundColor = [UIColor whiteColor]; // or some other non-clear color
}
return self;
}