iOS 14中長按返回按鈕會顯示多級菜單空厌,滑動后可以返回對應(yīng)的頁面驹针。
在App上長按后title為空
backButtonDisplayMode
iOS 14新增了一個屬性backButtonDisplayMode來定義title的來源
typedef NS_ENUM(NSInteger, UINavigationItemBackButtonDisplayMode) {
/// Default mode, uses an appropriate title, followed by a generic title (typically 'Back'), then no title.
UINavigationItemBackButtonDisplayModeDefault = 0,
/// Generic titles only. Ignores .title and .backButtonTitle (but *not* .backBarButtonItem.title).
UINavigationItemBackButtonDisplayModeGeneric = 1,
/// Don't use a title, just the back button indicator image.
UINavigationItemBackButtonDisplayModeMinimal = 2,
} NS_SWIFT_NAME(UINavigationItem.BackButtonDisplayMode);
title來源的優(yōu)先級
1.navigationItem.backBarButtonItem
2.navigationItem.backButtonTitle
3.navigationItem.title和viewController的title咧党,同時設(shè)置顯示為viewController的title
App中使用
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = item;
來隱藏返回按鈕的標(biāo)題括丁,引起了上面的問題。
UINavigationItemBackButtonDisplayModeMinimal
Minimal模式下拧篮,返回按鈕不顯示title,但是 navigation stack可以顯示出 title,未設(shè)置title的時候顯示返回牵舱。
適配
if (@available(iOS 14.0, *)) {
self.navigationItem.backButtonDisplayMode = UINavigationItemBackButtonDisplayModeMinimal;
} else {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = item;
}