使用Container包含静态TableView及传输数据

  • 需求:用属性为Static cells的TableView布局为界面的一部分, 整体界面在UIViewController里

  • 解决方法: 用UIViewController里Container控件连接TableviewController,
    传输数据通过在Segue方法里设置代理传Self


部分Static Cells的TableView

如果在UIViewController里面加入一个UITableView, 并将Content设置为Static Cells , 加载此ViewController就会报错:

  • Static table views are only valid when embedded in UITableViewController instances.
使用Container包含静态TableView及传输数据_第1张图片
图片来自backslash112
  • 意思是说,如果 UITableView 不是在 UITableViewController 而是在 UIViewController 中的时候,是不允许将 UITableView 的 Content 属性设置为 Static Cells 的。

解决步骤如下:

  • 在原来的 UITableViewController 加入一个 ContainerView,
  • 连接(control拖线) ContainerView 和 UITableViewController。
使用Container包含静态TableView及传输数据_第2张图片

这样在Container就可以显示Static Cells的TableView了


Container的数据传输

  • 在UITableViewController里定义代理
  • 点击Segue 设置Identifier
  • 在UIViewController里面设置Segue
使用Container包含静态TableView及传输数据_第3张图片

到此两个控制器就可以互相调用

  • 值得一提的是用AFNetWorking请求数据是异步多线程, 所以设置数据最好在success的Block里面设置, 这样才会先设置数据, 然后通过Segue的destinationViewController才会拿到数据. 否则数据还没到就去拿就拿不到了.

https://github.com/ALVIN-YANG

你可能感兴趣的:(使用Container包含静态TableView及传输数据)