Как вы используете интерфейс 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
}