Есть две вещи, необходимые для достижения того, чего вы пытаетесь достичь:
- Изменение изображения по умолчанию кнопки «Назад» на предоставленное изображение
- Удаление заголовка из элемента кнопки «Назад»
Чтобы изменить изображение кнопки «Назад»:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Remember, this will change every navigation bar's back button image in your app
UINavigationBar.appearance().backIndicatorImage = #imageLiteral(resourceName: "backButton")
UINavigationBar.appearance().backIndicatorTransitionMaskImage = #imageLiteral(resourceName: "backButton")
return true
}
Примечание. Если вы не хотите, чтобы на кнопке «Назад» на всей панели навигации отображалось изображение, возможно, вам потребуется создать подклассUINavigationController
и обновите его панель навигации.
Удаление заголовка из элемента кнопки «Назад»:
Мы сделаем это, добавив метод к любому UIViewController
сквозному расширению.Здесь будет использоваться метод расширения, чтобы любой UIViewController
мог иметь такое поведение, когда захочет.
extension UIViewController {
func removeNavigationBarBackButtonItemTitle() {
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItem.Style.plain, target: nil, action: nil)
}
}
Теперь в любом push-переходе для VC A -> VC B вам нужно скрыть название кнопки «Назад».Но вы должны вызвать метод removeNavigationBarBackButtonItemTitle()
из VC A .Просто запомните это, и вы готовы идти.
class ViewControllerA: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
removeNavigationBarBackButtonItemTitle()
}
}
Здесь вы найдете демо .Демо также имеет некоторые другие реализации.Но вы получите то, что вам нужно, и то, что я сказал выше.