基于视图的iPhone应用程序子视图删除?

时间:2012-01-04 17:12:44

标签: iphone ios view

我遇到了麻烦。

我正在添加其他类似的观点。

haberdetay *detayview = [[haberdetay alloc] initWithNibName:@"haberdetay" bundle:nil];

CATransition *transition = [CATransition animation];
transition.duration = 0.25;
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.view.layer addAnimation:transition forKey:nil];

[self.view addSubview:detayview.view];

此视图打开另一个视图,另一个视图可能。然后用户触摸主图标。这些都是使用内存的。我该如何删除它们。我正在尝试

NSArray * subviews = [self.view subviews];
for(UIView * aSubview in subviews)
{
    // this removes and releases the subviews you allocated
    [aSubview removeFromSuperview];
}

此访问haberdetay的子视图,但我必须访问所有子视图才能删除或访问它们。

如你所知,我很困惑:)如果你了解我,请告诉我,我该怎么办? :)

2 个答案:

答案 0 :(得分:1)

你应该使用pushViewController或presentModalViewController而不是在另一个Viewcontroller中添加一个Viewcontroller的视图,当你想要回来时你可以使用popViewController或dismissModalViewController,这也有助于内存管理。

答案 1 :(得分:1)

我想你想要[self.navigationController pushViewController:haberdetay animated:YES];这将缓存您以前的视图,因此不必发布。它还将处理动画,以及为您添加和删除主视图。此外,刷新这样的观点是一个非常糟糕的主意,尤其是主要的自我观点。