[英]Swift 2 - protocol delegate not called
我正在嘗試實現一個delegate
,以便在主 viewController 中調用事件。
當我嘗試在main view controller
調用委托時,出現錯誤:
實例成員 'delegate' 不能用於類型 '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")
}
}
您可以像使用CustomPickerViewController
一樣簡單地進行分配。 您需要為該視圖控制器創建新對象,然后分配委托,
例如:
let customPickerVC = CustomPickerViewController()
customPickerVC.delegate = self
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.