Подтвердить что ты не робот

Странная анимация на iOS 7 при использовании hidesBottomBarWhenPushed в таргетинге на основе приложения <= iOS 6

Эта проблема возникает, когда я создаю приложение, ориентированное на iOS 5 или 6, но запускаю его на iOS 7. Если у меня есть контроллер в navigationController, который является частью tabBarController, и я делаю следующее:

controller.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:testController animated:YES];

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

Видео выпуска: http://cl.ly/1w0g3j293m03

Открытый радарный отчет: http://www.openradar.me/14670329

4b9b3361

Ответ 1

Вы всегда можете удалить анимацию из UIView с помощью

[self.view.layer removeAllAnimations];

Приветствия

Ответ 2

Попробуйте следующее:

[self.navigationController.navigationBar setHidden:NO];

Ответ 3

Если вы хотите сохранить прозрачность, добавьте это в корень UIViewController:

- (void)viewWillAppear:(BOOL)animated {
    [UIView animateWithDuration:0.35f animations:^{
        self.tabBarController.tabBar.alpha = 1.0f;
    }];
}

- (void)viewWillDisappear:(BOOL)animated {
    [UIView animateWithDuration:0.35f animations:^{
        self.tabBarController.tabBar.alpha = 0.0f;
    }];
}

Таким образом вы получите приятную анимацию fade-in/fade-out панели вкладок.

Ответ 4

Попробуйте это

if( [self respondsToSelector:@selector(setEdgesForExtendedLayout:)] )
{
    self.edgesForExtendedLayout=UIRectEdgeNone;
}

Ответ 5

это говорит, что вы должны поставить:

self.navigationController.navigationBar.translucent = NO;

следуйте этой ссылке

Ответ 6

Просто установите для полупрозрачного свойства значение NO для обеих навигационных панелей и tabBarController. Это решит вашу проблему.