IOS的storyboard编程之 TableView

storyboard中,TableViewCell既可以从一个TableViewController里面得到,也可以在一个通用的ViewController里面,通过拉相应的tableView来得到。现在分两种情况讨论

 

1.对于一个TableViewController里面的cell而言,它的cell显示以及添加select动作之后的响应,总共有一下情况。

所以总共有下面几种情况:

(1)    如果设置静态的tableviewCell,并且没有对应文件,那么设置push动作可以切换画面

(2)    如果设置是静态的tableviewCell,如果关联了文件,但是文件里面没有,numberOfSectionsInTableView      ,那么可以显示出静态的sotryboard中的cell,并且点击相关cell,能进行画面的切换

 

(3)    如果设置是静态的tableviewCell,并且关联了一个文件,但是文件里面有

numberOfSectionsInTableView     - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; 这两个函数则必须要与静态设置的tableViewCell数量一致,不然画面会奔溃;并且

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath这个函数不需要实现,此时点击push还是可以实现画面切换;如果这个函数实现了,运行会崩溃

 

(4)    如果是动态的tableviewCell, 通常是无法在storyboard里面给tableviewcell添加push动作的切换对象的,因为动态的cell会从文件中生成,而从storyboard中定义的cell,不一定会显示出来。

实际上还是有一个办法,可以从动态的tableview里面,实现添加cellpush动作

方法是:

给每一个 cellidentifier给出具体的定义,然后在

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

            上面函数里面使用下面:

    NSUInteger row = [indexPath row];

    NSString *identifier = nil;

   

    if (row%2 == 0)

    {

        identifier = @"GreenIdentifier";

    }

    else

    {

        identifier = @"RedIdentifier";

    }

   

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

 

通过上面的绿色的东西,可以获得storyboard里面的cell

 

2.第二种,也就是说原生的viewController并不是UITableviewController这个类,并且往这个类里面添加了TableView,如果要实现显示TableView中的cell功能,必须要再ViewControoler关联的文件里面,实现cell的三个方法

numberOfSectionsInTableView

cellForRowAtIndexPath

numberOfRowsInSection:(NSInteger)section

并且应该也要设置cell的类型为动态的cell

也就是这个时候,寄居在非TableViewControllerTableView不支持static模式

除此之外,还要把tableviewdatasourcedelegate设置为当前的viewController才行。

 

如果要实现点击cell,能够实现相应的select功能,需要在storyboard里面定义每一个cellIdentifier,并在viewController.m文件里面引用该cellIdentifiel,这样在storyboard里面定义的select事件才会被响应。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值