美文网首页
模仿QQ动态列表模式,每行cell跳转不同的页面

模仿QQ动态列表模式,每行cell跳转不同的页面

作者: 浅宇落 | 来源:发表于2017-03-22 18:17 被阅读0次

功能简介

每一行cell跳转一个不同的页面。

例如:

QQ动态页面

解决方法

第一种

 很多人都会用if-else来进行判断,这样即麻烦又难维护项目。不推荐使用这种方案,请看第二种解决方案。

第二种(推荐方案)

1):首先创建一个显示数据的模型(HomeItem):包括图片属性,标题属性,打算跳转的控制器属性(用Class修饰)。再写一个类和对象的构造器。

@interface HomeItem : NSObject

@property (nonatomic, copy) NSString *iconIamge;///图片

@property (nonatomic, copy) NSString *title;///标题

@property (nonatomic, assign) Class vc;///打算跳转的控制器

- (instancetype)initWithIconIamge:(NSString *)iconIamge title:(NSString *)title vc:(Class)vc;

+ (instancetype)homeItemWithIconIamge:(NSString *)iconIamge title:(NSString *)title vc:(Class)vc;

2):创建一个存放数据(HomeItem)的模型(HomeGroup):包活每个分区的区头内容、区尾内容,存放数据(HomeItem)的数组属性。

@interface HomeGroup : NSObject

@property (nonatomic, copy) NSString *header;///区头内容

@property (nonatomic, copy) NSString *footer;///区尾内容

@property (nonatomic, strong) NSArray *groups;///存放数据

3):往数据源中添加数据:

HomeItem *item1 = [HomeItem homeItemWithIconIamge:@"aio_icons_groupvideo" title:@"看点" vc:[ViewController class]];  //创建HomeItem

HomeItem *item2 = [HomeItem homeItemWithIconIamge:@"aio_icons_location" title:@"京东购物" vc:[ViewController class]]; //创建HomeItem

HomeItem *item3 = [HomeItem homeItemWithIconIamge:@"aio_icons_music" title:@"阅读" vc:[ViewController class]]; //创建HomeItem

HomeItem *item4 = [HomeItem homeItemWithIconIamge:@"aio_icons_pacamera" title:@"音乐" vc:[ViewController class]]; //创建HomeItem

HomeItem *item5 = [HomeItem homeItemWithIconIamge:@"aio_icons_pic" title:@"NOW直播" vc:[ViewController class]]; //创建HomeItem

HomeItem *item6 = [HomeItem homeItemWithIconIamge:@"aio_icons_ptt" title:@"热门活动" vc:[ViewController class]]; //创建HomeItem

HomeGroup *group = [[HomeGroup alloc]init]; //创建HomeGroup

group.header = @"dfndknf"; //创建HomeGroup的区头内容

group.footer = @"dmd"; //创建HomeGroup的区尾内容

group.groups = @[item1, item2, item3, item4, item5, item6]; //创建HomeGroup的数组内容

[_dataSoucre addObject:group]; //把HomeGroup添加到数据源中

4):刷新表格(UITableView)

[self.tableView reloadData];

5):点击cell实现跳转指定的页面

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

HomeItem *item = [_dataSoucre[indexPath.section] groups][indexPath.row];

[self.navigationController pushViewController:[[item.vc alloc]init] animated:YES];

}

希望此篇文章能帮到你们,如有错误请指出。

Demo地址: QQ动态Demo地址

相关文章

网友评论

      本文标题:模仿QQ动态列表模式,每行cell跳转不同的页面

      本文链接:https://www.haomeiwen.com/subject/msjmuttx.html