【发布时间】:2017-10-11 15:19:49
【问题描述】:
在 iOS 11 中,我目前正在更改导航控制器的后退按钮,如下所示:
UINavigationBar.appearance().backIndicatorImage = whiteBackButtonImage!.withRenderingMode(.alwaysOriginal)
UINavigationBar.appearance().backIndicatorTransitionMaskImage = whiteBackButtonImage!.withRenderingMode(.alwaysOriginal)
这似乎工作正常,问题是当我想区分两种使用不同背景图像的 UINavigationControllers 时:
let whiteNavigationBarAppearance = UINavigationBar.appearance(whenContainedInInstancesOf: [WhiteNavigationController.self])
whiteNavigationBarAppearance.backIndicatorImage = greenBackButtonImage!.withRenderingMode(.alwaysOriginal)
whiteNavigationBarAppearance.backIndicatorTransitionMaskImage = greenBackButtonImage!.withRenderingMode(.alwaysOriginal)
let greenNavigationBarAppearance = UINavigationBar.appearance(whenContainedInInstancesOf: [GreenNavigationController.self])
greenNavigationBarAppearance.backIndicatorImage = whiteBackButtonImage!.withRenderingMode(.alwaysOriginal)
greenNavigationBarAppearance.backIndicatorTransitionMaskImage = whiteBackButtonImage!.withRenderingMode(.alwaysOriginal)
使用第二种方法时,会显示常规的后退按钮,因此它无法识别更改。有人知道我的方法有什么问题吗?
【问题讨论】:
-
你使用故事板吗?您是否为导航控制器分配了适当的类?
-
不,我正在以编程方式创建导航控制器。
标签: ios swift uinavigationcontroller uinavigationbar uiappearance