iOS 7 在一般的 ViewController 中使用static cell

本文介绍了一种在自定义ViewController中利用静态单元格的方法,通过使用ContainerView和Embed segue,或代码实现,使开发者能在自定义的ViewController中享受静态单元格带来的便捷。这一技巧对于iOS应用开发人员尤其有用,尤其是在需要使用UITableView但又不想局限于UITableViewController的场景下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

               

毫无疑问,我们从来没有像这样喜欢过故事板。从 iOS 5 开始,苹果在其新的IDE版本中提供了故事板编辑器,并在故事板编辑器中“升级”了其 Object Library,尤其是UITableView。新的 UITableView 除了可以用传统的 DataSource 编程方式提供 cell 外,还有两种可以不离开 ViewController设计界面对其进行UI设计的单元格:模板单元格和静态单元格。

前者毋庸多说,一旦你使用过它,就不会再离不开它了。而对于后者,一直存在着一个巨大的缺陷——静态单元格只能在SDK内置的 UITableViewController  中使用,如果在程序员自己的ViewController中,静态单元格根本不会显示,甚至于编译器会提示错误信息:“Illegal Configuration: Static table views are only valid when embedded in UITableViewControllerinstances”。

这确实是一件令人遗憾的事情,但是苹果至今(Xcode 5)没有在其提供的 IDE 中解决这个缺陷。

这个问题怎么解决?我们确实需要在自己的 ViewController 中使用静态单元格。

我们可以从 Xcode4.5 以后的 Container View 中得到启发。借助于Xcode4.5.1 之后提供的 ContainerView,我们可以将一个包含有静态单元格的UITableViewController “嵌入”到自己的 ViewController中。

具体步骤如下:

1、在故事板中拖入一个常规的 TableViewController 。

2、在这个 TableViewController 中使用静态单元格。


3、在故事版中拖入一个常规的 ViewController 。

4、在这个 ViewController 中拖入一个 Container View。

5、这个 Container View 会自动带有一个 segue 指向另一个 ViewController。将 segue 和那个ViewController 都删除。

6、右键(或ctrl+左键)从 Container View 拖一条线到 TableViewController,然后在弹出的菜单中选择 Embed。

这样,当运行程序时,那个普通的ViewController 中会显示 TableViewController 中内容,即在自己的 ViewController中使用了静态单元格。

但是,Embed segue 只在 iOS 6 以后有效。为了和 iOS 5 兼容,你也可以使用下列代码来“嵌入”UITableViewController到一个常规的 ViewController 中:

- (void)viewDidLoad

{

    [superviewDidLoad];

self.tableVC=[self.storyboardinstantiateViewControllerWithIdentifier:@"DerivedTableViewController"];

    [self.containerViewaddSubview:_tableVC.view];

}

这里,self 是 ViewController,self.tableVC 是 UITableViewController,self.containerView是 self 的 subview。


           

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值