Changing navigation title programmatically
You change the title by changing the title of the view controller being displayed:
viewController.title = "some title"
Normally this is done in view did load on the view controller:
override func viewDidLoad() {
super.viewDidLoad()
self.title = "some title"
}
However, this only works if you have your view controller embedded in a UINavigationController. I highly recommend doing this instead of creating a navigation bar yourself. If you insist on creating a navigation bar yourself, you can change the title by doing:
navigationBar.topItem.title = "some title"
Set title of navigation bar
For Swift 3:
If you want to set just the navigation title without using a UINavigationController
then make an outlet of the navigation item as
@IBOutlet weak var navItem: UINavigationItem!
and then in viewDidLoad()
write
navItem.title = "ANY TITLE"
How to set title of Navigation Bar in Swift?
Since the Tab Bar
is actually the Root View Controller
of the Navigation Bar
, you need to set the UITabBarController
's title
instead in the viewWillAppear
function so that it happens every time you switch tabs:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.navigationItem.title = "My Title"
self.tabBarController?.navigationItem.leftBarButtonItem = settingsButton //This is the IBOutlet variable that you previously added
}
But a better way to do it would actually be to have it the other way around, like so
You should hook up a UINavigationController
for each child of the UITabBarController
, as it is more correct semantically, and simpler to maintain.
How to set the title of a Navigation Bar programmatically?
In your UIViewController
self.navigationItem.title = @"The title";
How to set title of navigation bar in storyboard?
I am pretty sure this is a bug in Xcode... I have experienced the same issue and most of the time it was solved by restarting Xcode.
** In addition you may be able to get it solved by doing:
Drag a Navigation item from the objects pane into the viewcontroller or tableviewcontroller. This seemed to work for me. I did notice that the navigation area was missing from the "Document Outline Pane".
I hope this helps.
How do I left align the title of a navigation bar in Xcode?
You can use the navigationItems titleView to add a UILabel with left alignment and then set its frame using auto layout like this:
let label = UILabel()
label.text = "Title Label"
label.textAlignment = .left
self.navigationItem.titleView = label
label.translatesAutoresizingMaskIntoConstraints = false
label.superview?.addConstraint(NSLayoutConstraint(item: label, attribute: .centerX, relatedBy: .equal, toItem: label.superview, attribute: .centerX, multiplier: 1, constant: 0))
label.superview?.addConstraint(NSLayoutConstraint(item: label, attribute: .width, relatedBy: .equal, toItem: label.superview, attribute: .width, multiplier: 1, constant: 0))
label.superview?.addConstraint(NSLayoutConstraint(item: label, attribute: .centerY, relatedBy: .equal, toItem: label.superview, attribute: .centerY, multiplier: 1, constant: 0))
label.superview?.addConstraint(NSLayoutConstraint(item: label, attribute: .height, relatedBy: .equal, toItem: label.superview, attribute: .height, multiplier: 1, constant: 0))
change navigation bar title font - swift
Try this:
Objective-C
[[UINavigationBar appearance] setTitleTextAttributes:attrsDictionary];
Swift 3
self.navigationController.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "CaviarDreams", size: 20)!]
Swift 4
self.navigationController.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "CaviarDreams", size: 20)!]
Related Topics
Swift Uisearchcontroller Wired Up in Core Data Project, App Runs, But Search Not Updating
How to Share Both Image and Text Together in Swift
Swift 3 and Firebase: Retrieve Auto Id Value from Snapshot
How to Remove Quotes from String on Swift
In Swiftui How to Set the Environment Variable of Editmode in an Xcodepreview
Guarantees About the Lifetime of a Reference in a Local Variable
Binary Operator '==' Cannot Be Applied to Two Operands
Swift: How to Expand a Tilde in a Path String
Hide Tab Bar in View with Push
Swiftui: Detect Finger Position on MAC Trackpad
Swift Tableview Cell Set Accessory Type
How to Check If a String Contains Chinese in Swift
How to Convert a Float Value to Byte Array in Swift
Handling Network Error in Combination with Binding to Tableview (Moya, Rxswift, Rxcocoa)
Nsurlsession/Nsurlconnection Http Load Failed (Kcfstreamerrordomainssl, -9802)