UITabBarController Просмотреть ошибку перехода - PullRequest
0 голосов
/ 22 июля 2011

Хорошо, я уже некоторое время работаю над этой проблемой, и это далеко не в моей компетенции, поэтому я снова обращаюсь за помощью.

Я пытаюсь анимировать переход для нажатия кнопки со вкладкой в ​​другое представление. Я объявил в обоих методах viewController (ViewWillAppear) код ниже

- (void)viewWillAppear:(BOOL)animated
{
    //TODO: Fix transition animation

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
                           forView:self.view cache:YES];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    [UIView commitAnimations];

    [super viewWillAppear:animated];  
}

FirstViewController справа и SecondViewController слева.

Теперь проблема возникает, когда пользователь загружает приложение в первый раз, как только все загружается, и пользователь нажимает на кнопку табуляции, чтобы перейти ко второму виду, оно не переворачивается, но когда вы возвращаетесь к FirstView это оживляет, затем, если вы перейдете ко второму, он оживит на этот раз .. Доза кто-нибудь есть какие-либо идеи, почему это счастливее? если вы сделаете вашу помощь будет принята с благодарностью!

UPDATE :: Я пытаюсь добавить анимацию в viewDidLoad, однако анимация для открывающей последовательности, которую я загружаю, уже есть.

[super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //-- Start Opening Animation ------->
    CGRect vaultTopFrame = vaultTop.frame;
    vaultTopFrame.origin.y = -vaultTopFrame.size.height;

    CGRect vaultBottomFrame = vaultBottom.frame;
    vaultBottomFrame.origin.y = self.view.bounds.size.height;

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:2.5];
    [UIView setAnimationDelay:2.0];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

    vaultTop.frame = vaultTopFrame;
    vaultBottom.frame = vaultBottomFrame;

    [self.view bringSubviewToFront:vaultTop];   //this should place this subview above any others on the same page
    [self.view bringSubviewToFront:vaultBottom]; //this should place this subview above any others on the same page

    [UIView  commitAnimations];

Я думаю, что это может меня испортить, что ты думаешь?

Ответы [ 2 ]

0 голосов
/ 22 июля 2011

Это может быть или не быть проблемой, но вы должны позвонить

[super viewWillAppear:animated];  

в начале метода перед кодом анимации.

0 голосов
/ 22 июля 2011

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

...