настоящее модальное представление при повороте - PullRequest
2 голосов
/ 27 февраля 2011

Итак, у меня есть UITableViewControler, отображающий представление таблицы в портретном режиме.

Как только я поворачиваю iPhone, я хочу представить модальное представление в альбомном режиме.

В табличном представлении я использую:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

И чтобы обработать настоящее модальное представление:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration {
        if((interfaceOrientation == UIInterfaceOrientationLandscapeRight) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft))
        {
            NSLog(@"Push page view");
            PagingViewController *s = [[PagingViewController alloc] initWithNibName:@"PagingView" bundle:nil];
            s.hidesBottomBarWhenPushed = YES;

            [self presentModalViewController:s animated:YES];
            [s release];
        }
}

Модальное представление у меня следующее:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

И чтобы отклонить модальное представление само, я делаю:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration {
    if (interfaceOrientation == UIInterfaceOrientationPortrait)
    {
        NSLog(@"Dismiss my self");
        [self.parentViewController dismissModalViewControllerAnimated:YES];
    }
}

Некоторые, как это работает два раза. В третий раз, когда я поворачиваю iPhone из портретного режима в альбомный, я получаю ошибку неверного доступа.

Я не могу понять, что дает мне ошибку. Кто-нибудь хочет сделать снимок?

1 Ответ

0 голосов
/ 15 июня 2011

Самый простой способ, который я могу придумать, это реализовать -shouldAutorotate ... и закрыть модальное представление и вернуть NO, чтобы прервать вращение. Возможно, этого будет достаточно, чтобы избежать проблем с параллелизмом. Если это предложение вам не нравится, взгляните на NSNotificationCenter.

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