我有一个UIView类,我目前通过在类[self removeFromSuperview]
中使用来删除我的视图。希望这是正确的事情。
但是,现在从我的视图控制器(我将其添加到其中)我需要知道它何时删除了自己,这样我就可以在发生这种情况时调用方法。
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:1)
一般来说,视图不应该像删除自身那样。这是视图控制器的工作。
如果UIView
子类可以生成需要更改视图层次结构的事件,我将为该视图定义delegate
属性,当事件发生时,调用该委托上的方法。然后,当您的视图控制器添加视图时,它会将自己设置为委托并定义处理事件的相关方法。
答案 1 :(得分:0)
您可以使用委托回调将控制器设置为视图的委托。当您要删除视图时,请进行委托回调并在控制器中实现回调方法。
'removeFromSuperview'似乎总是向后退...... :(
答案 2 :(得分:0)
我假设您在进行某种操作后进行删除调用,例如按下按钮或其他内容。如果是这种情况,将按钮委托设置为视图控制器,而不是视图类,并在视图控制器的操作方法内,调用
[yourCustomView removeFromSuperview];
答案 3 :(得分:0)
最好的选择是让控制器删除视图
[self.view removeFromSuperview];
并且要知道视图是否已删除(或从未添加),您可以询问
if(![self.view superview]) {
//no superview means not in the view hierarchy
}
答案 4 :(得分:0)
不确定您使用的是什么sdk - 但我使用的是iOS 5,我只是在superview中使用以下方法:
-(void)willRemoveSubview:(UIView *)subview{
if([subview isEqual:someView]){
//do stuff
}
//you could do some stuff here too
}
答案 5 :(得分:0)
如果你已经移除了 UIView
view.removeFromSuperview()
您可以使用以下代码检查它是否存在:
if !(view.superview != nil) {
//no superview means not in the view hierarchy
}