Лучший способ добавить UIViewController поверх другого UIViewController - PullRequest
4 голосов
/ 02 июля 2011

Какой лучший способ добавить UIViewController поверх UIViewController, который уже присутствует на моем iPhone. Есть два способа, о которых я знаю. Но есть ли лучший способ? Какой из них лучше, если нет?

1. [self presentModalViewController:controller animated:NO];
2. [self.view addSubview:someController.view];

Ответы [ 5 ]

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

Это зависит от того, как вы хотите это реализовать.Если вы хотите показать контроллер представления и отклонить его, используя существующие переходы, вы можете использовать presentModalViewController .Но, если вы хотите показать его с некоторыми пользовательскими анимациями, вы можете использовать addSubView .И опять же, это полностью зависит от вас.

1 голос
/ 24 марта 2013
[[self view] addSubview: [otherViewController view]];

CGRect frame = [[self view] frame];

int direction = 1;
switch (direction) {
    case 0: // from bottom
        frame.origin.y = [[self view] frame].size.height;
        [[otherViewController view] setFrame: frame];
        frame.origin.y = 0.0 - [[self view] frame].size.height;
        break;
    case 1: // from right
        frame.origin.x = [[self view] frame].size.width;
        [[otherViewController view] setFrame: frame];
        frame.origin.x = 0.0 - [[self view] frame].size.width;
        break;
}

[UIView animateWithDuration: 1.0
                      delay: 0.0
                    options: UIViewAnimationOptionCurveEaseInOut
                 animations:^{
                     [[self view] setFrame: frame];
                 }
                 completion: ^(BOOL finished) {

                 }
];
1 голос
/ 02 июля 2011

Это зависит от вашего требования показать контроллер представления.Может быть еще одно нажатие на контроллер в стеке навигации.

[self.navigationController pushViewController:anotherViewController animated:YES];

Проверьте сообщение на форуме приложения, чтобы узнать, когда использовать pushViewController: и когда presentModalViewController:.

pushViewController или presentModalViewController

presentModalViewController и pushViewController

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

Оба способа почти эквивалентны, так как при создании стека представлений вы можете увидеть нижнее представление (пока оно не было щелочным) с помощью [self removeFromSuperview], когда вы addSubView, и [self dismissModalViewControllerAnimated:YES];, когдаyo используйте [self presentModalViewController:tempView animated:NO];, но да presentModalViewController, предоставьте вам вариант по умолчанию для анимации, будь то с addSubview, вам нужно немного поработать для этого.

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

Зависит от того, что вы хотите.Ни один способ не лучше другого.Все просто ... пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...