2011-12-18 2 views
9

У меня есть два вида, viewA и viewB. Я загружаю viewB на вершине viewA сiOS remove view

[self.view addSubview: viewB.view]; 

Я wan't удалить viewB, но я не знаю, как это сделать. Я попробовал

[self.view removeFromSuperview]; 

но это не работает. Как я могу это сделать?

ответ

19

Звоните -removeFromSuperview на номер viewB.view.

+0

пробовал, приложение падает с этим: '- [viewB performSelector: withObject: withObject]: сообщение отправлено высвобождены, например 0xf568d40' – McDermott

+0

вы можете разместить больше кода это трудно? знать, что такое g неправильно, без дополнительного контекста. – Sean

+0

Я узнал, что авария не была связана с этим. Теперь он отлично работает. – McDermott

7

Чтобы удалить вид viewB из его супервизора, вам необходимо вызвать removeFromSuperview в этом представлении.

[viewB.view removeFromSuperview]; 

От UIView class reference.

removeFromSuperview 

отсоединяет приемник от его надтаблицы и его окно и удаляет его от ответчика цепи.

3

Вы находитесь на правильном пути, используя removeFromSuperView. Но вам нужно отправить сообщение в представление, которое вы хотите удалить. Так же, как, например Till

[viewB.view removeFromSuperview]; 

Однако, вы не могли бы иметь ручку для viewB к тому времени, вы хотите, чтобы удалить его, если вы не используете свойство и синтезировать метод. Я бы использовал @property и @synthesize. Таким образом, вы можете использовать:

[self.viewB.view removeFromSuperview]; 

Другой способ использует это: (при условии, что ваш viewB.view последний вид вы добавили viewA.view

[[self.view.subviews objectAtIndex:(self.view.subviews.count - 1)]removeFromSuperview]; 

Вы можете получить список всех подвидов вашего viewA по:

NSLog(@"subviews of viewA.view: %@",self.view.subviews); 
+1

FYI вы можете вызвать 'lastObject', чтобы получить последний объект массива (вместо' self.view.subviews.count - 1) ' – Rog

+0

Я узнал, как я иду. Отличная информация! – user523234

+0

Я добавляю много вещей программно, поэтому 'removeFromSuperview' - мой выбор. – McDermott