私は自分のUIViewControllerにタイトルを追加したいと思います:タイトルとは何が違うのですか?
私は、時々ソリューション1つの作品、時々溶液2作品、時々溶液3作品を
self.navigationController.navigationItem.title
self.navigationController.title
self.title
を試してみました。
エキスパートは、その違いを教えていただけますか?
私は自分のUIViewControllerにタイトルを追加したいと思います:タイトルとは何が違うのですか?
私は、時々ソリューション1つの作品、時々溶液2作品、時々溶液3作品を
self.navigationController.navigationItem.title
self.navigationController.title
self.title
を試してみました。
エキスパートは、その違いを教えていただけますか?
title
は、UIViewController
のプロパティです。
このコントローラが管理するビューを表すローカライズされた文字列。 ビューを説明する人間が判読可能な文字列にタイトルを設定します。 ビューコントローラに有効なナビゲーションアイテムまたはタブバーアイテムがある場合、 はこのプロパティに値を割り当てて、 オブジェクトのタイトルテキストを更新します。
self.navigationController
あなたviewController
がであるviewControllersのスタックを管理するUINavigationController
です。UINavigationController
UIViewController
のサブクラスなので、self.navigationController.title
はUINavigationController
のtitle
です。
self.navigationItem.title
ナビゲーション項目のタイトル。デフォルト値はnilです。受信者がナビゲーション アイテムスタックにあり、上から2番目の場合、つまり、ビュー コントローラは、ユーザーが戻る予定のビューを管理します。このプロパティの の値は、最上部の ナビゲーションバー。このプロパティの値がnilの場合、システムは、 文字列 "戻る"をバックボタンのテキストとして使用します。
ので、実際には、あなたのViewController
秒のtitle
を設定する必要があります。 iOSのは、あなたのViewController
がUINavigationController
によって管理されている場合は、別のViewController
にプッシュするとき、それは、戻るボタンのためにそのテキストを使用するナビゲーションアイテムまたはタブバーの項目にこのタイトルをコピーして、ナビゲーションバーにこのタイトルが表示されますViewController
がUITabBarController
で管理されている場合はタブバーに表示されます。
私はそれらを説明するためのデモを作成します。
あなたが見、私のvc1
は、私のvc2
があまりにもnavigation controller
における光緑color
埋め込みで、navigation controller
に黄灰色color
埋め込みですnavigation controller
の2つはすべてtabbar controller
で管理されています。ViewController.swift
で
(それはvc1
である)、Iはself.title
を設定した場合:ViewController2.swift
で
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "vc1's title"
}
}
を(それがvc2
ある):
import UIKit
class ViewController2: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "vc2's title"
}
}
結果はtabbar title
とnavigation title
全セットである:
私はself.navigationController?.title
を設定した場合:
私はself.navigationItem.title
を設定した場合::
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// self.title = "vc1's title"
self.navigationController?.title = "vc1's nav title"
}
}
結果がtabbar title
が設定されています
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// self.title = "vc1's title"
//self.navigationController?.title = "vc1's nav title"
self.navigationItem.title = "vc1's navItem title"
}
}
結果がnavigation title
が設定されている:
あなたがself.navigationController.navigationItem.titleを試してみましたか? – Kevin
私はそれがあなたのデモとして動作することを知っている、私はこれの根本的な原因を知りたい、そして私は私の将来の開発に使用するものを決定することができます。 – Kevin