切换视图(使用动画)当我使用removeFromSuperView时,为什么我的屏幕变白?

时间:2012-02-15 06:01:35

标签: iphone objective-c c

我刚刚启动了目标C而且我正在增强当前的iPhone应用程序。以前的代码是由其他人完成的。我正在尝试切换视图 - 并添加页面卷曲动画,但当我尝试返回(removefromsuperview)时,我的屏幕变白了。我知道我指的是错误的观点,但我不知道如何将其引用到正确的观点。

- (IBAction为)换向{

[UIView beginAnimations:@"flipview" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView: self.view.superview cache:YES];

//[self.navigationController popToRootViewControllerAnimated:YES];

[self.view removeFromSuperview];

[UIView commitAnimations];

}

注释掉的popToRootViewController允许我返回上一页。任何帮助将非常感激。我对所有这些观点感到疯狂><谢谢!

3 个答案:

答案 0 :(得分:2)

尝试这样的事情:

[UIView transitionWithView:self.navigationController.view duration:1.0 options:UIViewAnimationOptionTransitionCurlDown
                animations:^{
                    [self.navigationController popToRootViewControllerAnimated:NO];
                }
                completion:NULL];

答案 1 :(得分:1)

发生这种情况是因为你试图从超级视图中删除视图,这不是之前添加的方式,如果在自己显示视图时没有使用addSubview,则不要使用removeFromSuperView。

您应该将此代码添加到调用当前视图的父级

  

viewNotLoggedHome.modalTransitionStyle =   UIModalTransitionStylePartialCurl;

这样你就已经为你正在推动的视图陈述了“部分卷曲”过渡动画

并且只删除switchBack函数上的所有动画块,因此它只包含

-(IBAction)switchBack 
{ 
[self.navigationController popToRootViewControllerAnimated:YES]; 
}

答案 2 :(得分:-1)

您需要使用要使用的视图的名称,而不是使用self.view作为对superview的引用。 F.E. :   - 如果你有view1和view2   - 您可以使用

删除view1
[view1 removeFromSuperview];