When I push a UIViewController
, it has some title in back button at new UIViewController
, if the title has a lot of text, It does not look good in
You can use xcode 8 and swift 3.0
self.navigationController?.navigationBar.backItem?.title = " "
Swift 4.2
UIBarButtonItem.appearance().setTitleTextAttributes([.foregroundColor: UIColor.clear], for: .normal)
Updated Answer For Swift 4.2
Working with UIAppearance
is a cleaner way of solving the problem but it would cause all the UIBarButtonItem
to have a clear text. An improved version of the solution could be to check if the UIBarButtonItem
is contained in a UINavigationBar
.
UIBarButtonItem.appearance(whenContainedInInstancesOf: [UINavigationBar.self]).setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.clear], for: .normal)
Put the below code in any of the UIViewcontroller extension
it will hide all the UIViewcontroller
back text
open override func awakeFromNib() {
navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}
I have found a simple solution:-
at PersingtingViewController's
viewWillDisappear
method jsut put
self.title = ""
and set title
for PersingtingViewController's
on viewWillAppear
method.
And repeat this for all viewControllers
of navigationStack
except for last one.
Works for Swift 4.2
Using the line of code in AppDelegate
file into didFinishLaunchingWithOptions
UIBarButtonItem.appearance(whenContainedInInstancesOf: [UINavigationBar.self]).setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.clear], for: .normal)
UIBarButtonItem.appearance(whenContainedInInstancesOf: [UINavigationBar.self]).setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.clear], for: .highlighted)