iOS 9:ViewController 中使用static cell

从 iOS 5 开始,苹果在其新的IDE版本中提供了StoryBoard(下面叫故事板)编辑器,一直存在着一个巨大的缺陷——静态单元格只能在SDK内置的 UITableViewController 中使用,如果在程序员自己的ViewController中,静态单元格根本不会显示,甚至于编译器会提示错误信息:

“Illegal Configuration: Static table views are only valid when embedded in UITableViewControllerinstances”。

在自己的 ViewController 中使用静态单元格。可以利用 Xcode4.5 以后的 Container View , 我们可以将一个包含有静态单元格UITableViewController “嵌入”到自己的 ViewController中。

详细步骤:

  • 1.在故事板中拖入一个普通的ViewController

  • 2.在故事板中拖入一个常规的 TableViewController 。

  • 3.在这个 TableViewController 中使用静态单元格。

  • 4.在拖一个Container View 到ViewController中, 添加约束做屏幕适配 ,这个 Container View 会自动带有一个 segue 指向另一个 ViewController。将 segue 和那个ViewController 都删除。设置ViewController为首先启动项.

iOS 9:ViewController 中使用static cell_第1张图片
Snip20160106_6.png
  • 5.右键(或ctrl+左键)从 Container View 拖一条线到 TableViewController,然后在弹出的菜单中选择 Embed。
iOS 9:ViewController 中使用static cell_第2张图片
Snip20160106_4.png
  • 6.做到这一步, 很多人不造怎么获取后面的TableViewController, 下面提供一个简单方法:
    分别给ViewController和TableViewController指定控制器, 在TableViewController想怎么写代码就怎么写, 但是这里注意:
    • 1)在push进ViewController时候, 加载故事板代码跟加载 xib 不同
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"SPPersonalViewController" bundle:nil];
        SPPersonalViewController *personalViewController = [storyboard instantiateViewControllerWithIdentifier:@"SPPersonalViewController"];
        [self.navigationController pushViewController:personalViewController animated:YES];
iOS 9:ViewController 中使用static cell_第3张图片
Snip20160106_14.png

这里的SPPersonalViewController是你的ViewController
SPPersonalTableViewController是你的TableViewController

    1. ViewController的设置
iOS 9:ViewController 中使用static cell_第4张图片
Snip20160106_12.png
    1. TableViewController的设置
iOS 9:ViewController 中使用static cell_第5张图片
Snip20160106_13.png
    1. 然后就可以获取TableViewController , 在里面愉快地写数据源方法和代理方法了
@interface SPPersonalTableViewController ()
@end
@implementation SPPersonalTableViewController
{
.......
}
@end

你可能感兴趣的:(iOS 9:ViewController 中使用static cell)