Как представить UIViewController с восходящей анимацией, не скрывая TabBar - PullRequest
0 голосов
/ 16 декабря 2011

Итак, у меня есть UITabbarController с UINavigationController в нем. При нажатии кнопки я хотел бы ввести еще один UINavigationController, анимируя его, как при использовании presentModalViewController:animated:, но я не хочу, чтобы он скрывал TabBar.

Есть ли в UIKit (3.1.3 и более поздние версии) что-нибудь, что я мог бы использовать для этого, или мне придется делать анимацию самостоятельно?

Ответы [ 2 ]

4 голосов
/ 16 декабря 2011

Просто протестируйте код, возможно вам нужно установить navigationController как property, если вам нужно сделать что-то вроде pushViewController:animated:.

UIViewController * aViewController = [[UIViewController alloc] init];
[aViewController.view setFrame:self.view.frame];
[aViewController.view setBackgroundColor:[UIColor redColor]];

UINavigationController * navigationController = [[UINavigationController alloc] initWithRootViewController:aViewController];
[aViewController release];
[navigationController.view setFrame:CGRectMake(0.0f, 480.0f, 320.0f, 480.0f)];
[self.navigationController.view addSubview:navigationController.view];

[UIView animateWithDuration:0.3f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveLinear
                 animations:^{
                     [navigationController.view setFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)];
                 }
                 completion:nil];
[navigationController release];
1 голос
/ 16 декабря 2011

Единственный способ по умолчанию представить что-то снизу вверх - это presentModalViewController.На самом деле вы можете переопределить анимацию для вашего navigationController, но это не то, чего вы можете достичь, просто вызвав другой метод, вам придется создать свой собственный и обрабатывать анимации тоже.обмануть это будет перезагрузить ваш tabBar в представлении, которое вы представляете модально, но это может стать грязным.

...