swift - Model View Controller 中 TableView 的最佳实现

标签 swift uitableview model-view-controller uiview uiviewcontroller

Model View Controller 中 TableView 的最佳实现是什么? 我正在开发没有 Storyboard的应用程序,全部以编程方式进行。

是否可以在UIView中实现TableView?我尝试过,但是如果我在 View 中实现TableView,当 Controller 接收到按钮操作时,我无法修改或访问该 View 的tableView...

之后,我尝试在 ViewController 中实现 tableView,它工作得很好,但我不知道这是否是一个好的实现,因为当我想用 Piker 实现 TextView/TextField 时,我发现了同样的问题,例如。

我的目标是拥有一个带有 View 和 Controller (按钮等)的干净的 viewController 代码,现在当我希望组件位于相应的 View 中时,我发现自己拥有带有 View 和多个组件的 uiviewController 。

非常感谢!

最佳答案

这一切都是可能的,您遇到的问题并不是因为它是您不应该做的事情,而是因为它本质上与以前的工作方式略有不同。为了直接回答你的问题,我将直接将 tableView 实现为模态视图 Controller ,或者作为 UITableViewController 或继承 TableView 委托(delegate)和数据源的 UIViewController (如果你不希望 TableView 耗尽,则选择此方法模态视图 Controller 的整个空间)。

TableView 使用起来很简单,但是了解它们工作原理的每个细节将使您变得更强大,并且能够在任何这些场景中使用它们。我不会给你写一份关于它们的使用指南,而是在你宣布任何事情“无法完成”之前继续研究它们。

在这些不同的场景中,了解哪些类来实现委托(delegate)方法变得非常重要。在 UITableViewCell 的子类中而不是在它们所在的 UIViewController 中使用文本字段委托(delegate)的实现通常是最简单的。这允许更模块化的创建。

我发现使用 Storyboard可以加快学习速度,并且可以节省时间。我给你提供的一个在没有 Storyboard的情况下工作的借口是,如果你的计算机速度非常慢。

关于swift - Model View Controller 中 TableView 的最佳实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43146967/

相关文章:

objective-c - NSButton 绑定(bind)到 NSCollectionViewItem : representedObject?

ios - 如何在 View Controller 中触发协议(protocol)功能?

ios - 如何快速使用 Google Sign-In API

ios - 需要在 uitableviewCell 中使用 Uicollectionview,并在 swift 中使用 collectionviewcell 的动态高度

uitableview - 在 UIAutomation 的自定义表部分标题 View 上设置accessibilityIdentifier

php - 在模型或 Controller 中处理错误?

xcode - 在允许非模块化包含设置为 YES 的框架模块中包含非模块化 header

ios - 选择行时按下窗口

javascript - 如何使嵌入 View 中的 Ember 组件中的数据绑定(bind)起作用?

unit-testing - 卖给我单元测试