iOS удаляет вид - PullRequest
       1

iOS удаляет вид

11 голосов
/ 18 декабря 2011

У меня есть два вида: viewA и viewB.Я загружаю viewB поверх viewA с

[self.view addSubview: viewB.view];

Я не хочу удалять viewB, но не знаю, как это сделатьЯ пытался

[self.view removeFromSuperview];

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

Ответы [ 3 ]

20 голосов
/ 18 декабря 2011

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

7 голосов
/ 18 декабря 2011

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

[viewB.view removeFromSuperview];

Из справочника классов UIView .

removeFromSuperview

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

3 голосов
/ 18 декабря 2011

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

[viewB.view removeFromSuperview];

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

[self.viewB.view removeFromSuperview];

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

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

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

NSLog(@"subviews of viewA.view: %@",self.view.subviews);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...