三頁面 ①→②→③,① 隱藏導航欄,②③ 顯示。邊緣滑動返回時:
1. ② 滑動未完成彈回,導航欄消失。
2. 重新進入 ②→③,③ 標題變為 ② 標題,返回按鈕失效,導航欄錯亂。
導航欄狀態不一致 + 互動式轉場未完成時的狀態恢復缺陷。iOS 7+ 邊緣滑動返回 (`interactivePopGestureRecognizer`) 在轉場過程中會臨時調整導航欄透明度/隱藏,若轉場取消 (手勢釋放未超過閾值),導航控制器未能正確恢復子控制器的導航欄狀態 (`prefersNavigationBarHidden`/`navigationBarHidden`)。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES; // 或 NO
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// 可選:離開時恢復預設,避免影響下一頁
// self.navigationController.navigationBarHidden = NO;
}
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
搜索「iOS 導航欄隱藏 邊緣滑動返回 Bug」可見大量類似案例與開源解決方案 (如 `FDFullscreenPopGesture`、`ZFNavigation` 等庫)。