当你想从它的父通话中移除imageView
:
[imageView removeFromSuperview];
记住imageView
收到release
时取出,所以你需要确保它是正确retain
版,如果你打算重用。换句话说,您需要添加一个ivar到您的控制器类,您可以保留imageView以供重用。实际上,你将它分配给一个局部变量,并在你释放的方法结束时;该变量不应该是本地的,而是一个控制器的ivar,以便具有持久性,并且您将需要在控制器的dealloc
中释放它。
编辑:
我假设你有一个UIViewController
的地方,因为你需要它,它可以管理添加和删除子视图。
在这个类(我不知道该怎么称呼它,因为你没有说出来),我将宣布一个成员,以存储子视图:
@interface MyViewController {
...
UIImageView* imageView;
...
}
....
@end
这里实现:
@implementation MyViewController;
...
-(void)viewDidLoad {
[super viewDidLoad];
....
[self createImageView];
....
}
- (void) createImageView {
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_logo_medium.png"]];
imageView.frame = CGRectMake(123, 200, 250, 66);
imageView.tag = 800;
imageView.transform = CGAffineTransformMakeRotation(M_PI/2);
}
- (void)addImageView {
[self.parentViewController.view.window addSubview:imageView];
}
- (void) removeImageView {
[imageView removeFromSuperview];
}
-(void)dealloc {
...
[imageView release];
...
}
因此,在viewDidLoad
中,您将创建imageView并将其存储在内部供以后使用;当你需要它时,通过调用addImageView
来添加它;当你完成它时,你用removeImageView
删除它。
如果您的课程不是视图控制器,您应该可以对其应用相同的更改。
你能提供任何帮助代码吗?我有点困惑。 –
当然。您可以发布包含您已发布的代码的类的定义(.h文件)吗? – sergio
我发布的代码位于我的登录页面的viewDidLoad()块内,我想在主页viewDidLoad()成功登录后将其删除,并且希望在两个页面MainPageController DidLoad()后重新添加它。还有什么东西需要发布?请帮忙。 –