回答:
タイトルを変更するには、表示されているビューコントローラーのタイトルを変更します。
viewController.title = "some title"
通常、これはビューコントローラでロードされたビューで行われます。
override func viewDidLoad() {
super.viewDidLoad()
self.title = "some title"
}
ただし、これはUINavigationControllerに埋め込まれたビューコントローラーがある場合にのみ機能します。自分でナビゲーションバーを作成する代わりに、これを行うことを強くお勧めします。ナビゲーションバーを自分で作成したい場合は、次のようにしてタイトルを変更できます。
navigationBar.topItem.title = "some title"
ViewController
クラス自体を指します。あなたはを参照する必要があるインスタンスのViewController
。などのクラスのメソッド内からviewDidLoad
、を使用して行うことができますself
。クラスとインスタンスの違いがわからない場合は、それを理解することを強くお勧めします。この記事が役立ちます。
以下のコードはXcode 7で動作します。
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "Your Title"
}
私はこれが機能することを発見しました:
navigationItem.title = "Title"
var customTitle = self.navigationController?.visibleViewController?.navigationItem customTitle?.title = "Some Title"
また、Navigation Bar
手動で作成しようとすると、このコードが役立ちます
func setNavBarToTheView() {
let navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 64.0))
self.view.addSubview(navBar);
let navItem = UINavigationItem(title: "Camera");
let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.cancel, target: self, action: #selector(CameraViewController.onClickBack));
navItem.leftBarButtonItem = doneItem;
navBar.setItems([navItem], animated: true);
}
通常、ベストプラクティスはにタイトルを設定することUIViewController
です。これにより、UINavigationItem
も設定されます。一般的に、これはUINavigationBar
、何にもリンクされていないをプログラムで割り当てて初期化するよりも優れています。
UINavigationBar
が設計された利点と機能の一部を逃しています。ここにあなたを助けるかもしれないドキュメントへのリンクがあります。実際のバーと上で設定できるさまざまなプロパティについて説明しますUINavigationItem
。
覚えておいてください:
UINavigationController
さんはあなたの友達です。
ナビゲーションコントローラーに埋め込まれているページビューコントローラーの子ビューコントローラーからタイトルを変更する場合は、次のようになります。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.parent?.title = "some title"
}
Swift 4の場合:
スウィフト4
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Your title"
}
よろしくお願いいたします。
タブバーもタイトルの変更に使用するため、ナビゲーションバーでタイトルを提供するよりも使用self.navigationItem.title = "Your Title Here"
するself.title = "Your Title Here"
ことを好みますself.title
。次のコードを1回試す必要があります。
注:何かを行う前に、スーパービューのライフサイクルを呼び出す必要があります。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupNavBar()
}
}
private func setupNavBar() {
self.navigationItem.title = "Your Title Here"
}