从水平视图切换回来会导致iPhone应用程序崩溃

时间:2009-09-15 07:35:28

标签: iphone

这是我的问题: - 我有一个navcontroller,里面有一个带有4个视图控制器的tabbar控制器。 - 我想添加以下功能:   - 在landscapeRight上解除navcontroller,tabbar控制器和所有内容并加载整个新控制器 - 这个没问题,这是代码:

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    // Just delete the lines for the orientations you don't want to support
    if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
            [appDelegate ToHorizontalAverageResponseView:self];
    }
    return YES;
}

以下是App Delegate中的代码:

- (void)ToHorizontalAverageResponseView:(id)sender
{
    HorizontalResponseViewController *tempController = [[HorizontalResponseViewController alloc] initWithNibName:nil bundle:nil];
    [self setHorizontalResponseViewController: tempController];
    [tempController release];
    //[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
    // View rotation transformation
    CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation( M_PI * 90.0 / 180.0 );
    [[horizontalResponseViewController view] setTransform:landscapeTransform];

    [window addSubview:[horizontalResponseViewController view]];
}

问题是如何转回纵向视图以及所有那些导航栏和标签栏控制器?

THX, 姆拉登纳莱

1 个答案:

答案 0 :(得分:0)

听起来你正试图按照iPod-CoverFlow过渡的方式构建一些东西。在斯坦福大学的CS193P讲座中提出了关于如何建立覆盖流效应的问题,答案暗示了以下方向:

如果你能承受内存开销,最好在所有的肖像视图之上添加一个新的横向视图(不要像你的建议那样丢弃它们)。然后,用户根据需要与此横向视图交互,直到回到纵向。一直以来,肖像画一直在背景中静静地看着。