当我的应用程序回到它的根视图控制器,在viewDidAppear:方法中,我需要删除所有子视图。
我该怎么做呢?
当我的应用程序回到它的根视图控制器,在viewDidAppear:方法中,我需要删除所有子视图。
我该怎么做呢?
当前回答
view.subviews.forEach { $0.removeFromSuperview() }
其他回答
使用Swift UIView扩展:
extension UIView {
func removeAllSubviews() {
for subview in subviews {
subview.removeFromSuperview()
}
}
}
从你的根控制器获取所有的子视图,并给每个子视图发送一个removeFromSuperview:
NSArray *viewsToRemove = [self.view subviews];
for (UIView *v in viewsToRemove) {
[v removeFromSuperview];
}
使用以下代码删除所有子视图。
for (UIView *view in [self.view subviews])
{
[view removeFromSuperview];
}
试试swift 2.0
view.subviews.forEach { $0.removeFromSuperview() }
在Swift中,你可以使用这样的函数式方法:
view.subviews.forEach { $0.removeFromSuperview() }
作为比较,命令式方法看起来像这样:
for subview in view.subviews {
subview.removeFromSuperview()
}
这些代码片段只适用于iOS / tvOS,但在macOS上略有不同。