Откажитесь от UIViewController снизу вверх вместо справа налево - PullRequest
0 голосов
/ 20 июля 2011

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

CGRect screenRect = [[UIScreen mainScreen] applicationFrame];

CGRect endFrame = self.view.frame;
endFrame.origin.y = screenRect.origin.y - screenRect.size.height;

UIView *aView = [[self.view retain] autorelease];
[self.view.window addSubview:aView];
aView.frame = CGRectMake(0, 0, 320, 460);
[UIView animateWithDuration:0.5
                 animations:^{
                     [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
                     aView.frame = endFrame;
                 }
                 completion:^(BOOL finished) {
                     [self dismissModalViewControllerAnimated:NO];
                     [aView removeFromSuperview];
                 }
 ];

Это приводит к переходу; но предыдущий контроллер представления не появляется до тех пор, пока не завершится анимация, так как я не могу отменить ее, пока она не завершится ... какие-либо идеи?

1 Ответ

2 голосов
/ 20 июля 2011

Ааа, когда вы представляете ModalViewController, он автоматически скрывает вид сзади.То, что вам нужно сделать, это не представить и удалить, но добавить представление контроллеров представления как подпредставление основного представления.Затем вы просто анимируете представление за пределами экрана и удалите FromSuperview в обработчике соревнования.

...