項(xiàng)目截圖
項(xiàng)目截圖
今天做項(xiàng)目遇到一個需求,有點(diǎn)奇葩吧堂鲜,就是如上圖所示栈雳,當(dāng)“已發(fā)布”里面有數(shù)據(jù)的時候,右上角沒有“新增發(fā)布”缔莲,中間有個“去發(fā)布”的按鈕哥纫,當(dāng)“已發(fā)布”里面有數(shù)據(jù)的時候,右上角才有“新增發(fā)布”的字樣酌予,如果“新增發(fā)布”和“已發(fā)布”磺箕,在一個頁面的時候這個很容易實(shí)現(xiàn)奖慌,沒有數(shù)據(jù)的話就隱藏抛虫,有的話就不隱藏!简僧!
但是“發(fā)布”建椰,“已發(fā)布”,“已下架”是三個頁面岛马,相當(dāng)于需要在“已發(fā)布”頁面通過判斷有無數(shù)據(jù)改變“發(fā)布”頁面右上角控件的狀態(tài)C藿恪!這個分欄的效果請看分頁控制器,現(xiàn)在利用“通知”來實(shí)現(xiàn)這個效果@材妗I【亍!夏志!
1.第一步在“已發(fā)布”頁面網(wǎng)絡(luò)請求里面創(chuàng)建新的線程乃坤,通過傳0和1,來確定狀態(tài),0代表沒有數(shù)據(jù)湿诊,1代表有數(shù)據(jù)
//當(dāng)沒有數(shù)據(jù)的時候
if (_dataArray.count == 0) {
[self performSelectorOnMainThread:@selector(addNewRightButton:) withObject:@0 waitUntilDone:YES];
//有數(shù)據(jù)
}else {
[self performSelectorOnMainThread:@selector(addNewRightButton:) withObject:@1 waitUntilDone:YES];
}
2.創(chuàng)建通知
- (void)addNewRightButton:(NSNumber *) num{
[[NSNotificationCenter defaultCenter] postNotificationName:@"addReleaseItem" object:nil userInfo:@{@"addNewRelsase":num}];
}
3.在發(fā)布這個頁面調(diào)用這個通知
right = [[UIBarButtonItem alloc]initWithTitle:@"新增發(fā)布" style:UIBarButtonItemStylePlain target:self action:@selector(set)];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addReleaseItem:) name:@"addReleaseItem" object:nil];
}
-(void)addReleaseItem:(NSNotification *)notif {
if ([notif.userInfo[@"addNewRelsase"] integerValue] == 1) {
self.navigationItem.rightBarButtonItem = right;
}else {
self.navigationItem.rightBarButtonItem = nil;
}
}
4.移除通知
-(void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"addReleaseItem" object:nil];
}