4

I have 16 Outlets variables.

@IBOutlet var label00: UILabel?
@IBOutlet var label01: UILabel?
@IBOutlet var label02: UILabel?
@IBOutlet var label03: UILabel?
@IBOutlet var label10: UILabel?
@IBOutlet var label11: UILabel?
@IBOutlet var label12: UILabel?
@IBOutlet var label13: UILabel?
@IBOutlet var label20: UILabel?
@IBOutlet var label21: UILabel?
@IBOutlet var label22: UILabel?
@IBOutlet var label23: UILabel?
@IBOutlet var label30: UILabel?
@IBOutlet var label31: UILabel?
@IBOutlet var label32: UILabel?
@IBOutlet var label33: UILabel?

I want to declare them as an array but don't know how to do it.

Krunal
  • 77,632
  • 48
  • 245
  • 261
hatim
  • 218
  • 4
  • 16

2 Answers2

6

You have to create IBOutlet Collection like as

@IBOutlet var labels: Array<UILabel>!

For more reference of code check this question :

1) Can't hook up an outlet collection in Xcode 6 using storyboard

2) Swift - IBOutletCollection equivalent

For example :

enter image description here

Community
  • 1
  • 1
Ashish Kakkad
  • 23,586
  • 12
  • 103
  • 136
1

Follow these steps to create an array of outlets an connect it with IB Elements:

  • Create an array of IBOutlets
  • Add multiple UIElements (Views) in your Storyboard ViewController interface
  • Select ViewController (In storyboard) and open connection inspector
  • There is option 'Outlet Collections' in connection inspector (You will see an array of outlets there)
  • Connect if with your interface elements

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

enter image description here

Krunal
  • 77,632
  • 48
  • 245
  • 261