ios - 无法分配 UIPickerView 委托(delegate)或数据源

标签 ios swift uipickerview uipickerviewdatasource uipickerviewdelegate

由于某些原因,我无法将 UIPickerView 的数据源或委托(delegate)分配给我的 NSObject。

我有一个 NSObject 扩展了 UIPickerViewDataSourceUIPickerViewDelegate

class STRepeatPicker: NSObject, UIPickerViewDataSource, UIPickerViewDelegate {

    let options = ["One", "Two", "Three", "Four", "Five"]

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return self.options.count
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return options[row]
    }

}

我有一个 UIViewController 尝试设置数据源和委托(delegate)。它是 UITableViewCell 中的 UIPickerView

我在顶部创建对象:

let repeatPickerDataSource = STRepeatPicker()

然后在 cellForRowAt: 中,我尝试设置数据源和委托(delegate)。

let cell = tableView.dequeueReusableCell(withIdentifier: "pickerCell", for: indexPath) as! PickerTableViewCell

cell.picker.delegate? = repeatPickerDataSource
cell.picker.dataSource? = repeatPickerDataSource

return cell

当我运行它时它崩溃了,如果我调试并尝试打印出 cell.picker.delegate 我得到一个错误:Unexpectedly found nil while unwrapping an Optional value

有人知道如何将 UIPickerViewDelegate 和 UIPickerViewDataSource 分配给这样的 NSObject 吗?

最佳答案

问题是我没有正确注册我的手机,我将其注册为

self.tableView.register(UIPickerViewDelegate.self, forCellReuseIdentifier: "pickerCell")

应该是这样的:

self.tableView.register(UINib.init(nibName: "PickerTableViewCell", bundle: nil), forCellReuseIdentifier: "pickerCell")

关于ios - 无法分配 UIPickerView 委托(delegate)或数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54910221/

相关文章:

iphone - 通话结束后重新打开应用程序

swift - 如何防止 UIDatePicker 被多次初始化

swift - Tableview 单元格按钮选择错误

iphone - UITableView 行选择与 UIPicker 选项

android - 在 react native 应用程序中从 native 基础实现抽屉

ios - Catalyst 应用的 Firebase 权限被拒绝

ios - 无法在 iOS 的 uipicker View 中滚动?

iphone - UIPickerView 的问题

ios - 如何将我的 CAShapeLayer 在 UIView 中居中 - Swift?

swift - 翻转 NSButton 的图像倒置