質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

8516閲覧

NavigationControllerのtitleが表示されない

TatsunoriKoda

総合スコア58

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/06/21 08:57

編集2017/06/21 09:28

あるNavigationControllerのTableViewの画面から、

swift

1self.performSegue(withIdentifier: "tab_main",sender: nil)

で遷移したTabControllerの初めの画面でNavigationControllerのtitleが表示されません。
何が考えられますでしょうか?
viewDidLoad内で

swift

1super.viewDidLoad() 2self.navigationController?.navigationBar.barTintColor = UIColor.black 3self.navigationController?.navigationItem.title = "Main"

としていますが、barの背景色は黒に変わっているのですがタイトルが何も表示されません。
戻るボタンの部分は正しく表示されています。

また、

swift

1 2let rightBtn = UIButton(type: UIButtonType.system) 3rightBtn.addTarget(self, action: #selector(InitialController.tappedRightBarButton), for: UIControlEvents.touchUpInside) 4rightBtn.frame = CGRect(x: 0, y: 0, width: 30, height: 30) 5rightBtn.setImage(UIImage(named: "menu"), for: UIControlState()) 6self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: rightBtn)

というように、ボタンを追加しても何も表示されません。

原因としては何が考えられるでしょうか?
また、良いデバック方法などあればご教示いただけないでしょうか。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fromageblanc

2017/06/21 09:14

self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: rightBtn) の、rightBtnの生成コード見せてください
TatsunoriKoda

2017/06/21 09:28

追記しましたのでご確認いただけますでしょうか?
fromageblanc

2017/06/21 09:40

すいません。継承してるのはUIViewControllerですか?UITabBarControllerですか?
TatsunoriKoda

2017/06/21 09:42

継承元を確認する方法はありますか?
fromageblanc

2017/06/21 09:45

提示のコードが書かれてるクラスのことです。いっそ全部載せてもらったほうがわかりやすいです。
TatsunoriKoda

2017/06/21 09:49

継承はUITabBarControllerになるかと思います。というのも、この提示しているのはUIViewControllerになるのですが、UITabBarControllerにself.navigationItem.title = "テスト"とするとtitleが表示されるようになりました
TatsunoriKoda

2017/06/21 09:50

ということは継承しているUITabBarControllerのnavigationItemにtitleをセットすることになりますか?どういった書き方になるでしょうか?
guest

回答3

0

自己解決

皆様、ご回答ありがとうございました。
最終的には以下のようにすることでtitleが表示できました

swift

1self.parent?.navigationItem.title = "Main"

親であるUITabBarControllerにてself.navigationItem.titleでタイトルが変更・表示ができたので、それを継承しているタブのUIViewControllerにて上記のようにparentの要素に変更を加える形にしました。

投稿2017/06/22 01:14

TatsunoriKoda

総合スコア58

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

背景色が黒でタイトルの文字も黒だから表示されていないように見えるだけということはありませんか?(。・ω・。)

投稿2017/06/21 12:05

sachiko-kame

総合スコア334

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TatsunoriKoda

2017/06/21 12:28

私もそれを思ってbarの背景色を黒とかに変えてみたのですが・・・違いました
sachiko-kame

2017/06/21 12:59 編集

self.title = "タイトル"ちなみにこれでもいけませんか?⭐️ ちなみに上の方が書いてくださってるやつもやっているんですよね? self.navigationController?.navigationItem.title = "Main" と self.navigationItem.title = "Main" はきょどうが異なったので。
TatsunoriKoda

2017/06/22 01:15

ご回答ありがとうございます! はい、ご提示いただいたやり方ももちろん試してみました。 が、最終的には継承元のparentとする必要があったようです。お騒がせいたしました。
sachiko-kame

2017/06/22 12:47

こちらこそ検討違いな回答をしてしまってごめんなさい( ˘•ω•。˘ ) 解決できてよかったです⭐️
guest

0

titleはこれでいけません?

Swift

1//self.navigationController?.navigationItem.title = "Main" 2self.navigationItem.title = "Main" 3

投稿2017/06/21 09:13

編集2017/06/21 09:14
fromageblanc

総合スコア2724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TatsunoriKoda

2017/06/21 09:29

はい、このやり方でも表示されませんでした。
TatsunoriKoda

2017/06/21 09:43

print("titile:\(String(describing: self.navigationItem.title))") で表示させると、意図する文字列はセットされています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問