3 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
我發(fā)現(xiàn)最好的解決方案是在第一個(gè)視圖控制器中執(zhí)行以下操作。
Objective-C的
- (void)viewWillAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillDisappear:animated];
}
迅速
override func viewWillAppear(animated: Bool) {
self.navigationController?.setNavigationBarHidden(true, animated: animated)
super.viewWillAppear(animated)
}
override func viewWillDisappear(animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: animated)
super.viewWillDisappear(animated)
}
當(dāng)您按下UIViewController堆棧上的下一個(gè)時(shí),這將導(dǎo)致導(dǎo)航欄從左側(cè)(與下一個(gè)視圖一起)動(dòng)畫,并在您按下后面的后退按鈕時(shí)向左移動(dòng)(與舊視圖一起)UINavigationBar。
請(qǐng)注意,這些不是委托方法,您要覆蓋UIViewController這些方法的實(shí)現(xiàn),并且根據(jù)文檔,您必須在實(shí)現(xiàn)中的某處調(diào)用super的實(shí)現(xiàn)。

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
我必須對(duì)其他答案進(jìn)行一些輕微的調(diào)整,只是取消隱藏在viewWillDisappear中的欄,如果它消失的原因是由于推送了導(dǎo)航項(xiàng)目。這是因?yàn)橐晥D可能因其他原因而消失。
所以如果這個(gè)視圖不再是最頂層的視圖,我只會(huì)取消隱藏欄:
- (void) viewWillDisappear:(BOOL)animated
{
if (self.navigationController.topViewController != self)
{
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
[super viewWillDisappear:animated];
}
- 3 回答
- 0 關(guān)注
- 645 瀏覽
添加回答
舉報(bào)