旋转时呈现模态视图

时间:2011-02-27 19:03:04

标签: iphone rotation presentmodalviewcontroller

所以我有一个UITableViewControler以纵向模式显示一个tableview。

一旦我旋转iPhone,我想以横向模式呈现模态视图。

在tableView中我使用:

- (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 :(得分:0)

我能想到的最简单的方法是实现-shouldAutorotate ...并关闭模态视图并返回NO以中止旋转。也许这足以避免任何并发问题。如果这个建议不符合您的喜好,请查看NSNotificationCenter。