当我的应用程序回到它的根视图控制器,在viewDidAppear:方法中,我需要删除所有子视图。

我该怎么做呢?


当前回答

试试swift 2.0

view.subviews.forEach { $0.removeFromSuperview() }

其他回答

试试swift 2.0

view.subviews.forEach { $0.removeFromSuperview() }
view.subviews.forEach { $0.removeFromSuperview() }

在Swift中,你可以使用这样的函数式方法:

view.subviews.forEach { $0.removeFromSuperview() }

作为比较,命令式方法看起来像这样:

for subview in view.subviews {
    subview.removeFromSuperview()
}

这些代码片段只适用于iOS / tvOS,但在macOS上略有不同。

使用以下代码删除所有子视图。

for (UIView *view in [self.view subviews]) 
{
 [view removeFromSuperview];
}

在objective-C中,创建一个类别方法脱离UIView类。

- (void)removeAllSubviews
{
    for (UIView *subview in self.subviews)
        [subview removeFromSuperview];
}