今天看老的項目,突然發現一個問題:
從頁面①push到頁面②,pop回頁面①的時候,發現導航欄上面有那麼一閃而逝的藍色。
解決然後我就開始考慮這個問題產生的原因:
1. 首先,我檢查了頁面①的導航欄設置。
我在該頁面是把導航欄設置為透明的
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"默認導航欄圖片"] forBarMetrics:UIBarMetricsDefault];
}
然後,我就想著,要不就在viewWillAppear
中把導航欄隱藏下,等viewWillDisappear
中再把導航欄顯示出來。大不了就重新添加些label,button來模擬一個導航欄出來。
然後我就試了下,發現,並沒有什麼卵用!
引人深思:
這個項目是以前寫的,當時沒有設置基類,所以才導致有些頁面忘記設置導航欄屬性。
tip:
以後各位再構建新的工程的時候,多使用基類,方便省事!!!
原來問題在這裡!接著我就在頁面②的viewWillAppear
中添加了相關代碼。問題解決!
viewWillAppear
中設置過後,重新在頁面①中設置導航欄hidden
, 他的說法,如果這個 ViewController 是在 TabBarViewController 的 NavigationController 上 Push/Pop 的,那麼只需要把 TabBarViewController 的 View 設置一下白色背景就可以了
, 我找到TabbarController,設置背景色,沒卵用!!!
仍然沒用
。
如果有大神能看到,請給我講解下這個問題!謝謝!!
PS
說道上面的文章,他有說道一個問題,也是我遇到的
IOS 的 UITableViewCell 有一個很嚴重的問題,是 7.x 某個版本以後引起的,如果給 detailTextLabel.text 設置 nil 或者 "",再設置具體的 text 後有時會顯示不出來,但 Tap 一下能出來。具體的解決辦法是,不要設置 nil 或 "",設置 " " (中間有空格)。真是讓人吐血的 Workaround。
當時的設計是這樣的:
然後設置頭像那裡,我想著偷下懶: 設置cell的detailTextLabel為@“”
,再添加一個ImageView,然後添加約束,就可以了。
然後,在查看UI的時候,發現頭像”飛了”,然後我各種調試,才發現是detailTextLabel不顯示,因此,我也使用這種比較拙略的解決方法:
cell.detailTextLabel.text = @" ";
[cell addSubview:self.userIconImgView];
//這裡是Masonry代碼
[self.userIconImgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(cell);
make.right.equalTo(cell.extraLabel.mas_right);
make.size.mas_equalTo(CGSizeMake(60, 60));
}];
以上就是iOS導航欄pop的時候出現短暫藍色的全文介紹,希望對您學習和使用ios應用開發有所幫助.[db:作者簡介][db:原文翻譯及解析]
【iOS導航欄pop的時候出現短暫藍色】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!