- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 Swift。有时我看到 Main.Storyboard 用于设置 tableView
delegate
和 dataSource
(ctrl+click 等)。有时我看到它是通过编码而不是像这样完成的:
// create the variable for the tableview
IBOutlet weak var someTableView : UITableView!
// setup delegate and datasource
sefl.someTableView.delegate = self
self.someTableView.datasource = self
我确实了解第二种方式的工作原理。但是在没有 IBOutlet 设置的情况下,很难通过 Main.Storyboard 了解它是如何工作的。
感谢您的回复!
最佳答案
它的工作方式完全一样:)
让我重温一下原理:
你有一个类,在这种情况下由 Apple 提供,它必须适用于很多场景。 Apple 决定使用一种称为委托(delegate)的反转控制,其中工作流是反转的(因此得名):不是 View Controller 通过调用 tableView 的方法来向 tableView 发出命令,而是 tableView 去获取它的通过调用 Controller 上的方法从 Controller 发出命令。为了实现这种 IoC(控制反转),TableView 必须知道它必须询问其顺序的对象的“地址”。就像您必须知道老板的电子邮件地址才能向他询问事情一样。因此,UITableView 类作为一个名为 dataSource 的属性,表示存储该地址。现在,作为 ViewController 程序员,您必须将此属性设置为 View Controller 的地址,该地址将向该 tableview 发出命令。2 种方法:
在代码中:在 View Controller 中,您有一个指向 TableView 的属性(如果从 Storyboard链接,它确实被称为 IBOutlet,但不一定是)并且您将它的委托(delegate)属性设置为 self。 (意思是'嘿 tableView,你的老板是我自己)
或者您在 Storyboard 中执行此操作,因为 tableView 的图形模板允许您按住 ctrl 并从 tableView 拖动到 ViewController 并设置数据源连接。在这种情况下, Storyboard必须找到 tableView 的地址(因为它是创建它的人,所以这很容易)并将其委托(delegate)属性设置为 View Controller 的地址(意思是嘿 tableView,你的老板就是这个人)
无论哪种方式,viewController 都必须准备好回答来自 TableView 的所有问题,因此符合 UITableViewDataSource 协议(protocol)。委托(delegate)场景相同。
关于ios - tableView 委托(delegate)和数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28108926/
我试图通过预准备语句使用同一连接执行多个查询,但无法完全实现! 代码片段: public class PostPrReqDaoImpl implements PostPrReqDaoInterface
我目前有一个 2 列宽的 DataGridView,第一列是 DataGridViewTextBoxColumn,第二列是 DataGridViewComboBoxColumn。我还有一个预生成的通用
当我在一台机器上运行以下代码时,我得到了 org.apache.tomcat.dbcp.dbcp.BasicDataSource 的 tomcat 实现,当我在另一台机器上运行它时,我得到了 org.
不确定这是否可行,但这是我的设置。 我有一台带有双启动功能的笔记本电脑。 一个一个分区我有 WinXP 和 MSAccess 2000在另一个分区上,Ubuntu 10.04,带有 apache we
我试过: czmlDataSource.load(czmlurl).then(function(){ viewer.dataSource
我有一个 TableView 和一个数组源。当我在 viewDidLoad 方法中初始化数组时,tableview 显示数组中的数据。当我从 Internet 上的 XML 数据的 URL 填充数组时
我对 DataSource 和 SessionFactory 之间的区别感到困惑。 我认为SessionFactory是一个用于检索 session 的管理器(我猜这实际上是与数据库的连接)。 Dat
我想存储大量(~数千)个字符串并能够使用通配符执行匹配。 例如,这里是一个示例内容: Folder1 文件夹 1/Folder2 Folder1/* Folder1/Folder2/Folder3 文
我有一个 DataGridView 和一个从 SQL 表填充的一些对象的列表。我曾使用两种方法将列表绑定(bind)到网格。 1.直接使用列表到数据源 grdSomeList.DataSource =
我正在尝试在 DataGridView 中设置一些内容。看起来这应该很简单,但我遇到了麻烦。我想显示三列: 代码ID 代号 带有 TypeName 的 DisplayMember 和 TypeID 的
在我的 Config.groovy我把线: grails.config.locations = [ "classpath:app-config.properties"] 我在哪里设置数据源的定义。文件
为了这个问题,假设我有一个包含各种酒类的 Excel 数据源电子表格。 (Cell A) | (Cell B) Bacardi | Rum Smirnoff | Vodka Another Vodka
由于我经常使用第三方 API,我认为创建一些 Magento 模块以实现轻松连接和查询它们会很有帮助。理想情况下,您可以像这样查询 API... $data = Mage::getModel( 'to
将后台线程频繁更新的数据源与 GUI 主线程同步的最佳方法是什么? 我应该在每个方法调用周围放置一个 pthread 互斥体吗?这对我来说似乎也很重。 编辑:我正在寻找 10.5 解决方案 最佳答案
经过几个小时的点击和试用,在查看各种帖子寻求帮助后,这段代码终于起作用了。但我希望有人帮助我理解函数(i,dat),这意味着什么?下面是我的完整代码 - function get_assignedta
我使用的是 Wildfly 10.1 版本,有两个数据源,如下所示, jdbc:mysql://${dbhostn
我正在学习数据源,我想我开始理解它,但我不明白这一段。 据我所知,MySQL 和 PostgreSQL 等数据库供应商编写了自己的不同 DataSource 接口(interface)的实现。现在,这
我有一个关于 TomEE 和使用 tomee.xml 中指定的数据源的奇怪问题。值得注意的是,我使用的是 Netbeans、TomEE 和 MySQL。在 Ubuntu 13.04(Xubuntu 最
WWDC 2019 确实充满了 iOS 的新内容以及 TableViews 和 CollectionView 的新数据源,即 UITableViewDiffableDataSource . 我已成功将
我在独立模式下运行 jboss 并将 standalone.xml 中的数据源设置为以下内容: jdbc:sqlserver://myip:1433;databaseNam
我是一名优秀的程序员,十分优秀!