簡體   English   中英

Swift 2 - 未調用協議委托

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM