In my application I am adding labels to the view and then I am attempting to clear particular labels from the view when a button is clicked and am running into an error when trying to retrieve the subviews:
class FirstViewController: UIViewController {
@IBAction func btnAddTask_Click(sender: UIButton){
var subViews = self.subviews.copy()
}
}
I get the error:
'FirstViewController' does not have a member named 'subviews'
How can I get the subviews of the current view?
UIViewController
doesn't have a subviews
property. It has a view
property, which has a subviews
property:
for subview in self.view.subviews {
// Manipulate the view
}
But typically this is not a good idea. You should instead put the labels you want into an IBOutletCollection
and iterate over that. Otherwise you've very tied to the exact set of subviews (which may change).
To create the IBOutletCollection
, select all the labels you want in IB, and control-drag them to the source code. It should ask if you want to make a collection array. (Note that there is no promise on the order of this array.)