Я столкнулся с проблемой анимации (я думаю) с моим приложением на основе TabBar. У меня есть четыре элемента панели вкладок, из этих трех есть UINavigationControllers, и один из них просто имеет обычный контроллер представления. Проблема в том, что после перехода к представлению с анимацией первая вкладка без UINavigationController, по-видимому, больше не имеет правильного размера / позиции при смене баров.
Изначально вы можете без проблем проходить по всем четырем вкладкам, но после использования анимированного представления первое представление будет отображаться с анимацией скольжения вниз, как если бы оно было расположено неправильно. И наоборот, другие виды будут «скользить» вверх примерно на 20 пикселей при активации. У меня первый вид, не масштабируемый в IB, и он имеет такую же высоту, как и другие виды. Я также попытался заполнить его высоту на 44 пикселя (высота панели навигации), но он показал тот же эффект.
Также, как только эта ошибка вступит в силу, если другой вид активируется в первый раз; он выглядит странным, оживленным образом, его отдельные элементы растут снизу слева и перемещаются на место.
Любой совет приветствуется, я склонен полагать, что он связан с высотой или размером этого вида без контроллера навигации; или что анимация в моем единственном представлении не отменяется правильно. Это представление пытается предотвратить это (но оно не работает):
-(void)viewWillDisappear:(BOOL)animated {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.1];
[UIView setAnimationCurve: UIViewAnimationCurveLinear];
[UIView commitAnimations];
[super viewWillDisappear:false];
}