功能簡介
每一行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地址