Возможно, я делаю что-то действительно глупое, но, похоже, я не могу использовать 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
}
*/
}