如何在 swift 中使用其他类()委托和数据源函数?

Posted

技术标签:

【中文标题】如何在 swift 中使用其他类()委托和数据源函数?【英文标题】:How to use other class() delegates and datasource func in swift? 【发布时间】:2016-12-17 07:57:32 【问题描述】:

我有一个 UITextField 类,它向以下代表确认。我将此类用作全局类(它是一个小型自定义库,我将其用作微调器)。

    //MARK: PickerView Delegate
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? 
    return pickerDataArray![row]


func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
    self.text = pickerDataArray![row]


//MARK: TextField Delegate
func textFieldDidBeginEditing(textField: UITextField) 
    let row =  self.pickerView.selectedRowInComponent(0)
    self.text = self.pickerDataArray![row]

现在,我想获取选定的行,在这个类中将是 didSelectRow() 函数。那么,我如何能够在我实现它的那些类中以某种方式使用这些函数呢?

【问题讨论】:

你已经为它创建了一个自定义类,最好创建一个类,然后将它子类化为uiviewcontroller,然后在任何你想要的地方扩展这个类,然后直接调用这些方法 我将这个类作为来自故事板的文本字段自定义类。有可能做到这一点@ShobhakarTiwari 【参考方案1】:

您可以使用创建基类并在 ChildClass 中扩展或随时使用来实现

示例:

SuperBaseViewController 类

class SuperBaseViewController: UIPickerViewDataSource, UIPickerViewDelegate

   //Add PickerView's Data Source and Data Delegate Methods Here


SubViewController 类

class SubViewController: SuperBaseViewController

   //Whenever you click on PickerView's row than it's delegate method in SuperBaseViewController if you add didSelect method


【讨论】:

好吧,我之前也跟着做对了,所以,基本上你想说的是继承超类,调用他们的代表。感谢@Sunil 的概念

以上是关于如何在 swift 中使用其他类()委托和数据源函数?的主要内容,如果未能解决你的问题,请参考以下文章

Swift学习第八枪--协议

在单独的文件中设置 UITableView 数据源和委托 - swift

如何通过 Swift 扩展实现委托方法

swift TableView委托和数据源类示例

如何在 Swift 的单独类中设置 UITextField 的委托?

我如何在 swift3 中将单例类作为委托人