Я могу делать что-то действительно глупое, но, похоже, я не могу использовать Interface Builder для подключения переменных IBOutlet к пользовательским представлениям, но только в Swift.
Я создал класс MyView, который простирается от UIView. В моем контроллере у меня есть переменная MyView (объявленная как @IBOutlet var newView: MyView). Я перехожу в IB и перетаскиваю UIView в окно и даю ему класс MyView.
Всякий раз, когда я делал подобное в Objective C, я мог бы щелкнуть по кнопке View Controller в верхней части окна приложения, выбрать переменную и перетащить ее в элемент управления, чтобы связать их вместе. Когда я пробую его в Swift, он отказывается признать, что вид есть.
Если я изменю класс переменной в контроллере на UIView, он отлично работает. Но не с моим пользовательским представлением.
У кого-нибудь еще была эта проблема? И это особенность, или просто мой идиотизм?
Код для контроллера
import UIKit
class ViewController: UIViewController {
@IBOutlet var newView:MyView
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Код для просмотра
import UIKit
class MyView: UIView {
init(frame: CGRect) {
super.init(frame: frame)
// Initialization code
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect)
{
// Drawing code
}
*/
}