调用[self removeFromSuperview];来自子视图不会将控制权交还给父视图

时间:2013-08-16 09:45:45

标签: iphone ios ios5 ios6

我使用UI视图创建了一个自定义popUp视图。此弹出视图包含一个按钮和图像。

我的父视图(带控制器)包含一个按钮。单击按钮,我将弹出视图添加为子视图(见下文) -

[self.view addSubview:popUp];

在我的弹出式视图中,我处理了点击按钮,如下所示 -

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

所以点击弹出按钮,我关闭弹出窗口。

弹出窗口关闭后,我可以看到我的父视图。但现在我的父视图不再与事件交互。

请帮我解决问题。

3 个答案:

答案 0 :(得分:0)

使用[popUP removeFromSuperview ]代替[self removeFromSuperview]

那么我在这里提供你需要做的事情 1.制作popUP视图的实例 假设popUP *view = [popUP alloc]init]; 或通过IBOUTlet创建 然后像你一样添加它 在从popUP继承delegate的{​​{1}}类中删除protocol(UIView)时,popUP创建UIView并在SuperView中实施}

然后在该函数中使用[popUP removeFromSuperview ]意味着从superview中删除你的popUP实例,你需要这一切。

答案 1 :(得分:0)

是的,你必须改变

[self removeFromSuperview];[popUP removeFromSuperview];因为您要删除popUP而不是显示它的自我视图。

将弹出窗口指定为nil,如popUP = nil;,以删除所有内存跟踪。

希望这有帮助。

答案 2 :(得分:0)

使用[popUp removeFromSuperview];

而不是[self removeFromSuperview];