模仿QQ動態(tài)列表模式,每行cell跳轉(zhuǎn)不同的頁面

功能簡介

每一行cell跳轉(zhuǎn)一個不同的頁面。

例如:

QQ動態(tài)頁面

解決方法

第一種

?很多人都會用if-else來進(jìn)行判斷,這樣即麻煩又難維護(hù)項目。不推薦使用這種方案,請看第二種解決方案。

第二種(推薦方案)

1):首先創(chuàng)建一個顯示數(shù)據(jù)的模型(HomeItem):包括圖片屬性,標(biāo)題屬性,打算跳轉(zhuǎn)的控制器屬性(用Class修飾)。再寫一個類和對象的構(gòu)造器。

@interface HomeItem : NSObject

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

@property (nonatomic, copy) NSString *title;///標(biāo)題

@property (nonatomic, assign) Class vc;///打算跳轉(zhuǎn)的控制器

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

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

2):創(chuàng)建一個存放數(shù)據(jù)(HomeItem)的模型(HomeGroup):包活每個分區(qū)的區(qū)頭內(nèi)容、區(qū)尾內(nèi)容,存放數(shù)據(jù)(HomeItem)的數(shù)組屬性。

@interface HomeGroup : NSObject

@property (nonatomic, copy) NSString *header;///區(qū)頭內(nèi)容

@property (nonatomic, copy) NSString *footer;///區(qū)尾內(nèi)容

@property (nonatomic, strong) NSArray *groups;///存放數(shù)據(jù)

3):往數(shù)據(jù)源中添加數(shù)據(jù):

HomeItem *item1 = [HomeItem homeItemWithIconIamge:@"aio_icons_groupvideo" title:@"看點" vc:[ViewController class]];? //創(chuàng)建HomeItem

HomeItem *item2 = [HomeItem homeItemWithIconIamge:@"aio_icons_location" title:@"京東購物" vc:[ViewController class]]; //創(chuàng)建HomeItem

HomeItem *item3 = [HomeItem homeItemWithIconIamge:@"aio_icons_music" title:@"閱讀" vc:[ViewController class]]; //創(chuàng)建HomeItem

HomeItem *item4 = [HomeItem homeItemWithIconIamge:@"aio_icons_pacamera" title:@"音樂" vc:[ViewController class]]; //創(chuàng)建HomeItem

HomeItem *item5 = [HomeItem homeItemWithIconIamge:@"aio_icons_pic" title:@"NOW直播" vc:[ViewController class]]; //創(chuàng)建HomeItem

HomeItem *item6 = [HomeItem homeItemWithIconIamge:@"aio_icons_ptt" title:@"熱門活動" vc:[ViewController class]]; //創(chuàng)建HomeItem

HomeGroup *group = [[HomeGroup alloc]init]; //創(chuàng)建HomeGroup

group.header = @"dfndknf"; //創(chuàng)建HomeGroup的區(qū)頭內(nèi)容

group.footer = @"dmd"; //創(chuàng)建HomeGroup的區(qū)尾內(nèi)容

group.groups = @[item1, item2, item3, item4, item5, item6]; //創(chuàng)建HomeGroup的數(shù)組內(nèi)容

[_dataSoucre addObject:group]; //把HomeGroup添加到數(shù)據(jù)源中

4):刷新表格(UITableView)

[self.tableView reloadData];

5):點擊cell實現(xiàn)跳轉(zhuǎn)指定的頁面

- (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動態(tài)Demo地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 由于最近兩個多月,筆者正和小伙伴們忙于對公司新項目的開發(fā),筆者主要負(fù)責(zé)項目整體架構(gòu)的搭建以及功能模塊的分工。...
    CoderMikeHe閱讀 27,363評論 74 270
  • 最近刷了《外科風(fēng)云》,邊哭邊看,或許并沒有那么感動,但淚水就是止不住的流,或許有太多自己的情感在里面吧!有些話...
    Janet_happiness閱讀 347評論 0 1
  • 今夜,我將要來看你。我要先巡視我的家,那一千口方塘,兩萬畝茶園,三萬畝青松,五萬畝翠竹。讓他們把我清洗又清洗,過濾...
    水煮周易閱讀 423評論 0 6
  • 負(fù)載均衡,單從字面上的意思來理解就可以解釋N臺服務(wù)器平均分擔(dān)負(fù)載,不會因為某臺服務(wù)器負(fù)載高宕機和某臺服務(wù)器閑置的情...
    Fa1se003閱讀 20,715評論 1 31
  • 一個人去跑步了 雖然沒有實施計劃成功 但是這一路上覺得很陌生 刮了一路的風(fēng) 五味陳雜 “閨女”終于嫁出去了 我終于...
    johnnywaiting閱讀 323評論 0 1

友情鏈接更多精彩內(nèi)容