功能简介
QQ动态页面每一行cell跳转一个不同的页面。
例如:
解决方法
第一种
很多人都会用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地址
网友评论