-1
我想实现一个delegate
为了调用主viewController中的事件。Swift 2 - 协议委托不叫
当我打电话的main view controller
委托我得到的错误:
Instance member 'delegate' cannot be used on type 'CustomPickerViewController'
缺少什么我在这里?
在我的委托文件我有:
protocol CustomPickerViewControllerDelegate: class {
func CustomPickerDidSelectRow(sender:CustomPickerViewController)
}
//MARK: The Main Class
public class CustomPickerViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
// DELEGATE
weak var delegate: CustomPickerViewControllerDelegate?
override public func viewDidLoad() {
super.viewDidLoad()
customPicker.delegate = self
customPicker.dataSource = self
.....
}
public func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if component == 0 {
}else {
customLabel.text = arrayCustom[row]
self.delegate?.CustomPickerDidSelectRow(self)
}
}
}
主视图控制器:
class ViewController: UIViewController, CustomPickerViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
CustomPickerViewController.delegate = self // ERROR
}
func CustomPickerDidSelectRow(sender: CustomPickerViewController) {
print("ok")
}
}
由于这样做,我已经加入'viewController.presentViewController'是现在工作 – SNos