2013-08-16 1 views
0

Я создал пользовательское представление popUp, используя представление пользовательского интерфейса. Это всплывающее окно содержит кнопку и изображение.вызов [self removeFromSuperview]; from subview не возвращает управление родительскому виду

Мой родительский вид (с контроллером) содержит кнопку button.On щелчка, я добавляю вид всплывающий как подвид (см ниже) -

[self.view addSubview:popUp]; 

В моем всплывающем зрении я обработал щелчок кнопки как ниже -

- (IBAction)tapHabitatureButton:(id)sender { 
    [self removeFromSuperview]; 
} 

Таким образом, при нажатии всплывающей кнопки я закрываю всплывающее окно.

После того, как мое всплывающее окно приблизится, я вижу свое родительское представление. Но теперь мой родительский взгляд больше не взаимодействует с событиями.

Пожалуйста, помогите мне с решением.

ответ

0

Использование [popUP removeFromSuperview ] вместо [self removeFromSuperview]

Ну вот я предлагаю то, что вам нужно сделать 1. Сделайте экземпляр вашего Popup View Пусть выполнено popUP *view = [popUP alloc]init]; или создать его с помощью IBOUTlet Тогда добавьте его, как вы делаете удаляя popUP (UIView) из себя, воспользуйтесь delegate, создайте в своем классе popUP, который наследует UIView и реализует его в вашем SuperView

Тогда использование в этой функции [popUP removeFromSuperview ] означает удаление вашего экземпляра popUP из супервизора, вам нужно все это.

+0

Добавить объяснение настоятельно рекомендуется. – Raptor

+0

Я уже пробовал вышеупомянутый подход, создав делегата, но каким-то образом метод делегирования не вызывался. могу ли я создать uiview нажатием кнопки и добавить его в мой основной вид? –

+0

popUP * popviewinstace = [popUP alloc] init]; popviewinstace.delegate = self; –

0

Да для этого вы должны изменить

[self removeFromSuperview]; к [popUP removeFromSuperview];, как вы хотите, чтобы удалить Popup не мнение самого, в котором оно показывается.

и

назначить всплывающее окно, как ноль нравится popUP = nil;, чтобы удалить все следы памяти.

Надеюсь, это поможет.

+0

Я добавил [self removeFromSuperview]; в моем popUp.m. Итак, я здесь popUp –

+0

Обратите внимание, что я - текущий класс viewcontroller ... popUp - это элемент управления всплывающим меню, который вы добавили .... – IronManGill

+0

Извините, что не предоставил полную информацию.popUp - мой пользовательский класс UIView, он имеет свой собственный файл xib, .h и, m файл. Я вызываю [self removeFromSuperview]; из моего файла popUp.m. Файл popUp.m не имеет popUp-объекта. –

0

использование [popUp removeFromSuperview];

вместо [self removeFromSuperview];