Представить модальную форму ViewController, используя горизонтальный флип - PullRequest
8 голосов
/ 12 сентября 2011

В настоящее время я показываю модальный UIViewController в стиле formSheet, который был представлен с анимацией coverVertical. Я пытаюсь представить другой модальный UIViewController из него, используя currentContext для стиля презентации и flipHor Horizontal для стиля анимации. Это работает, но за переворотом появляется сплошной белый белый фон. Будем благодарны за любые советы о том, как успешно представить другой модальный UIViewController для форм с использованием стиля flipHor Horizontal от уже существующего модального UIViewController в стиле formSheet! Спасибо

Код:

// Loading of first modalVC
- (void)showModalVC {

    Modal1VC *modal1VC = [[Modal1VC alloc] init];
    modal1VC.modalPresentationStyle = UIModalPresentationFormSheet;
    modal1VC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:modal1VC animated:YES];
    [modal1VC release];

    modal1VC.view.superview.bounds = CGRectMake(0, 0, 400, 400);
}

// Loading of second modalVC in Modal1VC
- (void)buttonTapped:(id)sender {

    UIViewController *modal2VC = [[UIViewController alloc] init];
    modal2VC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    modal2VC.modalPresentationStyle = UIModalPresentationCurrentContext;
    modal2VC.view.backgroundColor = [UIColor greenColor];
    [self presentModalViewController:modal2VC animated:YES];
    [modal2VC release];

    modal2VC.view.superview.bounds = CGRectMake(0, 0, 400, 400);
}

Ответы [ 3 ]

4 голосов
/ 20 мая 2012
UIViewController *presentingViewController = //allocate your VC
[modalViewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
UIViewController *modalViewController = //your modal VC
[presentingViewController presentModalViewController:modalViewController animated:YES];

Это весь код, который вам нужен;)

1 голос
/ 29 сентября 2011

Звучит так, как будто ваш переход работает, но проблема с белым фоном, отображаемым на флип-переходе?

Во время флип-перехода белый фон, который отображается, на самом деле является window.Вы можете изменить отображаемый цвет, установив свойство backgroundColor для window в AppDelegate.

0 голосов
/ 28 сентября 2011

Казалось бы, ограничение presentModalViewController:animated:.

Вместо [self presentModalViewController:modal2VC animated:YES] вы можете получить желаемый эффект с помощью анимации UIView. Возможно, что-то вроде этого:

[UIView transitionWithView:self.view.window
                  duration:0.3
                   options:UIViewAnimationOptionTransitionFlipFromRight
                animations:^{
    [self presentModalViewController:modal2VC animated:NO];
} completion:NULL];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...