iOS - Как удалить предыдущее представление после загрузки нового представления? - PullRequest
0 голосов
/ 30 августа 2011

Я практикую многовариантность, но у меня небольшая проблема.

Когда мой новый вид загружается, я все равно вижу предыдущий вид.

Как сделать предыдущий вид невидимым ??

Вот мой код: -

- (IBAction)changeView:(id)sender 
{
    RedClass *red = [[RedClass alloc] initWithNibName:@"RedClass" bundle:nil];
    self.redClass = red;
    [red release];
    //[self.view removeFromSuperview];
    [self.view addSubview:redClass.view];        
}

и вот скриншот: -

enter image description here

А когда я раскомментирую [self.view removeFromSuperview], тогда мой красныйпредставление даже не загружается.

Любая помощь будет оценена.

Спасибо

Ответы [ 3 ]

2 голосов
/ 30 августа 2011

Я думаю, что цвет вашего красного взгляда может быть прозрачным.

, поэтому, пожалуйста, проверьте это в вашем nib-файле redclass. также проверьте альфа для своего красного представления, оно должно быть 1.

Вы не можете удалить свой первый просмотр здесь. потому что это может быть загружено в окне или другом контроллере. так что если вы добавляете view2 в view 1 и удаляете view1, тогда view2 автоматически удаляется, потому что он уже есть в view1. так что нельзя писать [self.view removeFromSuperview];

1 голос
/ 30 августа 2011

[self.view removeFromSuperview] удаляет отображаемое вами представление. Поэтому вам нужно вызвать removefromsuperview для ранее загруженного представления и вызвать addubview для нового.

1 голос
/ 30 августа 2011

Вы можете объявить переменную представления в .h файле. и выделите его в viewDidLoad и не выпускайте его там. Всякий раз, когда вы хотите добавить использование просмотра, [self.view addSubview:red]; и когда вы хотите удалить, вы можете использовать [red removeFromSuperview];

...