Если вы хотите удалить imageView
из его вызова суперпредставления:
[imageView removeFromSuperview];
имейте в виду, что imageView
получает release
при удалении, поэтому вы должны убедиться, что оно правильно retain
ред, если вы планируете использовать его повторно.Другими словами, вам нужно будет добавить ivar в ваш класс контроллера, где вы можете сохранить imageView для повторного использования.На самом деле вы присваиваете его локальной переменной и в конце метода, который вы выпускаете;переменная должна быть не локальной, а иваром контроллера, чтобы иметь постоянство, и вам нужно будет освободить ее в 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
.
Если ваш класс не является контроллером представления, вы сможете применить к нему те же самые изменения.