【问题标题】:Reason to connect UIPickerView datasource and delegate in storyboard在情节提要中连接 UIPickerView 数据源和委托的原因
【发布时间】:2015-06-23 05:54:56
【问题描述】:

我是 IOS 开发的新手,我正在使用 UIPickerView。我正在读一本书,名为:

使用 Swift 开始 iPhone 开发

在第 222 页那本书告诉这样做:

接下来,在选择器的情况下,按 ⌥z6 调出连接检查器。如果您查看可用于选择器视图的连接,您会看到前两项是数据源和委托。如果您没有看到这些插座,请确保您选择了选择器,而不是包含它的 UIView!从 dataSource 旁边的圆圈拖动到 View Controller 图标。在情节提要或文档大纲中的场景顶部,然后从委托旁边的圆圈拖动到视图控制器图标。

但我不知道这种联系的原因。请你能解释一下吗?谢谢。

【问题讨论】:

  • 您说选择器的数据源和委托方法是在该视图控制器中实现的。你也可以在代码中设置picker.datasource = viewcntrollerObj;picker.delegate = viewcntrollerObj;
  • 这样做的原因是什么?
  • 必须连接委托和数据源,以便在选择器中设置值以及从中获取元素。简而言之,您必须设置委托和数据源
  • 尝试在没有连接的情况下运行,您将在选择器上看不到任何内容。要在选择器中填充数据,您需要数据源。要从选择器获取事件,您需要委托
  • 但是连接在这里有什么帮助? @InderKumarRathore

标签: ios objective-c iphone swift


【解决方案1】:

委托协议

委托必须采用 UIPickerViewDelegate 协议并实现所需的方法以返回每个组件中行的绘图矩形。它还以字符串或视图的形式为每个组件的行提供内容,它通常会响应新的选择或取消选择。

数据源协议

数据源必须采用 UIPickerViewDataSource 协议,并实现返回组件数和每个组件行数所需的方法。

检查此链接 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPickerView_Class/#//apple_ref/occ/instp/UIPickerView/dataSource

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    相关资源
    最近更新 更多