查看不从堆栈卸载

时间:2011-09-13 07:12:28

标签: iphone xcode cocoa-touch uiview

我是新手,我有以下问题我希望有人可以帮助我。当我的应用程序加载时,它有几个按钮,加载不同的UIWebViews,每个按钮都有一个后退按钮。第一个视图加载正常,当您按下后退按钮会返回主视图,但是当您加载第二个视图时,第一个网址会再次加载,当您按下后退按钮时,它会加载第二个视图。

好像第一个视图没有从视图中卸载。如果任何人可以提供帮助,那么它会有很大的帮助。这是我的代码。

加载每个视图

-(IBAction)displayLocationView:(id)sender {
locationViewController = [[LocationViewController alloc]initWithNibName:@"LocationViewController" bundle:nil];


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

[self.view addSubview:locationViewController.view];
[UIView commitAnimations];
}

加载网址

-(void)viewDidLoad {
[super viewDidLoad];

NSURL *url = [NSURL URLWithString:@"http://www.kingsgroversl.com.au"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

[webView loadRequest:request];
}

卸载每个视图并返回主屏幕

-(IBAction)backButton:(id)sender {

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

[self.view removeFromSuperview];
[UIView commitAnimations];
}

提前致谢。

2 个答案:

答案 0 :(得分:0)

问题出在这里

-(IBAction)backButton:(id)sender {

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

[self.view removeFromSuperview];// change this to

[locationViewController.view removeFromSuperview];     [UIView commitAnimations];     }

您需要更改上述行。 现在你正在做的是删除sel.view ....这是不正确的。 你需要删除你的子视图。 像这样。

[locationViewController.view removeFromSuperview];

希望这会对你有所帮助

答案 1 :(得分:0)

当你使用removefromsuperview时,这意味着你要从superview中删除。但不是从内存中删除。所以最好使用[self.navigationcontroller pushviewcontroller:viewcontroller animated:YES];