将相同的 UITableView 添加到不同的 ViewControllers

月行者

在我的应用程序中,我有相同的 UI 组件,应该在不同的 ViewControllers 中呈现。这个组件看起来像按钮列表,点击每个按钮应该用一些参数推送 VievController - 我决定使用 UITableView 。

假设我有 ViewControllers: VC1,VC2,VC3 应在其中显示此 UITableView。应在每个 ViewController 中显示的单元格数量存储在名为button 的数组中

在此处输入图片说明

struct Button {
    var title : String
    var param : Int
}

class VC1 : UIViewController {
     var buttons = [Button]()
}

现在我正在每个 ViewController 中创建这个 tableView,比如

class VC1 : UIViewController, UITableViewDelegate, UITableViewDataSource {
     var buttons = [Button]()

     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
      return buttons.count
     }

     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
     ....
     return btnCell
     }

      func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
           performSegue....
      }
}
  • 声明此 TableView 的最佳方法是什么?我应该把所有 UITableView 委托方法放在哪里?
  • 我是否应该使用自定义 XIB 文件为此表创建单独的 UIView 子类
  • 它是创建一些协议 canShowButtons 的好地方吗?如果是这样 - 需要什么变量和方法。
图3k

您可以将所有 UI 元素放在 xib 中,并在该 xib 类中处理 tableView 委托。如果你想在 xib 和 VC1 之间进行通信,你可以编写一个协议。或者第二种方法非常相似,您可以创建一个UIelemntsVC包含所有 UI 元素(tableView、按钮等)的 viewController(让其命名)并将其加载到您的 VC1、VC2、VC3 等中。

UIelementsVC课堂上你可以像这样控制它的大小

self.view.frame = CGRect(x: 0, y: UIScreen.main.bounds.height, width: self.view.frame.width, height: self.view.frame.height*2)

如果你想使用自动布局,那么你应该在你的 VC1 中放置一个 UIViewUIelementsVC并向它添加子视图。

您可以像这样加载自定义 ViewController:

let customVC = UIelementsVC()
customVC.customDelegate = self // Only if you have a custom protocol
customVC.numberOfButtons = 5 // You can edit vars in customVC like this

self.addChildViewController(customVC)
self.view.addSubview(customVC)
customVC(toParentViewController: self)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将相同的 DefaultMutableTreeNode 添加到 2 个不同的 DefaultMutableTreeNode

来自分类Dev

将相同的servlet名称添加到不同的程序包中将显示错误消息

来自分类Dev

是否可以将相同的视图添加到两个不同的视图控制器?

来自分类Dev

将相同元素添加到数组php的每个级别

来自分类常见问题

使用整数将相同的行添加到Spark Dataframe

来自分类Dev

如何避免将相同的片段添加到堆栈

来自分类Dev

是否将相同的组件添加到多个面板?

来自分类Dev

将相同的值多次添加到列表

来自分类Dev

将相同的项目添加到多个组合框

来自分类Dev

将相同的代码添加到多个组合框

来自分类Dev

将相同的jqueryui添加到多个选项卡

来自分类Dev

将相同的组件添加到ggplots列表中

来自分类Dev

将相同的模块添加到依赖和devDependencies中

来自分类Dev

使用整数将相同的行添加到Spark Dataframe

来自分类Dev

SQL将相同的字符添加到多个字段

来自分类Dev

将相同的变量添加到元组列表

来自分类Dev

将相同的点添加到所有子图

来自分类Dev

将相同的jqueryui添加到多个选项卡

来自分类Dev

将相同的代码添加到多个组合框

来自分类Dev

如何将相同的变量添加到自身?

来自分类Dev

将相同的函数两次添加到具有不同名称的Javascript类中

来自分类Dev

使用两个不同的foreach循环将相同的数组添加到同一数组中PHP / SQL

来自分类Dev

拍照并添加到UITableView

来自分类Dev

如何在ViewControllers之间给不同的tableViews相同的动作[swift]

来自分类Dev

将相同记录多次添加到数据库,而不是一次添加

来自分类Dev

如何将相同的命令添加到ItemsControl中的WPF按钮

来自分类Dev

将相同的对象添加到上下文和列表

来自分类Dev

JS ajax + append将相同的HTML多次添加到一个元素

来自分类Dev

我想将相同的字符串以小写形式添加到每一行

Related 相关文章

  1. 1

    将相同的 DefaultMutableTreeNode 添加到 2 个不同的 DefaultMutableTreeNode

  2. 2

    将相同的servlet名称添加到不同的程序包中将显示错误消息

  3. 3

    是否可以将相同的视图添加到两个不同的视图控制器?

  4. 4

    将相同元素添加到数组php的每个级别

  5. 5

    使用整数将相同的行添加到Spark Dataframe

  6. 6

    如何避免将相同的片段添加到堆栈

  7. 7

    是否将相同的组件添加到多个面板?

  8. 8

    将相同的值多次添加到列表

  9. 9

    将相同的项目添加到多个组合框

  10. 10

    将相同的代码添加到多个组合框

  11. 11

    将相同的jqueryui添加到多个选项卡

  12. 12

    将相同的组件添加到ggplots列表中

  13. 13

    将相同的模块添加到依赖和devDependencies中

  14. 14

    使用整数将相同的行添加到Spark Dataframe

  15. 15

    SQL将相同的字符添加到多个字段

  16. 16

    将相同的变量添加到元组列表

  17. 17

    将相同的点添加到所有子图

  18. 18

    将相同的jqueryui添加到多个选项卡

  19. 19

    将相同的代码添加到多个组合框

  20. 20

    如何将相同的变量添加到自身?

  21. 21

    将相同的函数两次添加到具有不同名称的Javascript类中

  22. 22

    使用两个不同的foreach循环将相同的数组添加到同一数组中PHP / SQL

  23. 23

    拍照并添加到UITableView

  24. 24

    如何在ViewControllers之间给不同的tableViews相同的动作[swift]

  25. 25

    将相同记录多次添加到数据库,而不是一次添加

  26. 26

    如何将相同的命令添加到ItemsControl中的WPF按钮

  27. 27

    将相同的对象添加到上下文和列表

  28. 28

    JS ajax + append将相同的HTML多次添加到一个元素

  29. 29

    我想将相同的字符串以小写形式添加到每一行

热门标签

归档