Как вы используете интерфейс Builder с Swift?

При подключении кода Swift до раскадровки, как вы добавляете теги IBAction и IBOutlet?

Ответы

Ответ 1

Добавьте атрибуты IBAction и IBOutlet к переменным и функциям, чтобы они могли быть видны в построителе интерфейса.

class ViewController: UIViewController {

    @IBOutlet var label: UILabel?

    @IBAction func doTap(x:UIButton) {
        println("Tapped: \(x)")
    }
}

Ответ 2

Ниже код показывает формат IBOutlet и IBAction в Swift:

class MyViewController: UIViewController {

  @IBOutlet weak var btnSomeButton: UIButton?
  @IBOutlet weak var lblLabelItem: UILabel?

  @IBAction func btnSomeButtonClicked(sender: UIButton) {
    ...
  }
}

Вы можете связать их так же, как в Objective-C.

Ответ 3

Просто используйте старую технику ctrl + drag, которая была популярна в Xcode5, и все работает отлично.

Ответ 4

Я бы больше согласился с Jayprakash, чем предыдущий ответ. Единственное, что я бы исправил, это маркировка IBOutlets как неявно развернутая с помощью !. Первый ответ был правильным, но в Swift было внесено несколько изменений и как он взаимодействует с IB в последней версии. В Swift IBOutlets больше не имеют никакого скрытого поведения или магии - это просто аннотации для IB. Начиная с даты этого ответа, следующий код верен:

// How to specify an the equivalent of IBOutletCollection in Swift
@IBOutlet var fields: [UITextField]!
// How to specify a standard IBOutlet
@IBOutlet weak var button: UIButton!
// How to specify an IBAction
@IBAction func buttonWasPressed(sender: UIButton) { ... } 

Ответ 5

При создании проекта вы должны выбрать раскадровку, чтобы вы могли добавить свой IBOutlet прямо в панель рассказов.

Код ниже дает вам представление о том, как добавить IBOutlet в UILabel

class ViewController: UIViewController {

    @IBOutlet var label : UILabel

}