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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

Q&A

解決済

1回答

2139閲覧

ナビゲーションコントローラーデザイン

ryohasegawa

総合スコア437

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

0グッド

0クリップ

投稿2019/02/01 07:01

編集2019/02/05 16:48

ナビゲーションコントローラーのデザインについてです。
ストーリーボード上で作業しています。
やりたい事は、以下画像のように標準Appの「写真」のようにヘッダの部分に「戻るボタン」と「もうひとつボタン」をフッターの部分にもボタンを追加したいです。
イメージ説明
ですが、直接BerButtonItemをヘッダーやフッターの部分に持っていくとヘッダーに表示されていた前の画面に戻るボタンが消えてしまいます。
ヘッダーに関しては、NavigationItemを設置してからBerButtonItemを設置すると上画像のようになるんですが、問題はフッター部分です。
現在の状態は下の画像のようになってます。
イメージ説明
ここまでは思っているとうりになります。
次にフッター部分です。このままフッターにBerButtonItemを設置すると下の画像のように戻るボタンが消えてしまいます。
イメージ説明
戻るボタンを消さずにフッター部分にボタンを設置するにはどうすれば良いですか?

追記

イメージ説明

###追記2
回答をもとに画面を作ってみました。
イメージ説明
選択を押すとPresents Modllyで画面遷移します。
ですが、問題が一つ...
Navigation Barの上に空間ができてしまいます。
Toolbarの下の隙間は自動でなくなってるとおもいます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

標準Appの「写真」アプリのフッター部分は、TabBarControllerで表示されるTabBarです。

質問しているのは、そうではなくて、1つの画面内に表示するToolBarのように見えますが、ToolBarを画面の下に配置してから、そこにBarButtonItemを貼り付けていますか?

もしかして、ToolBarを配置せずに、ViewControllerのSimurated MetricsのBottom Barを「Translucent Toolbar」にして、そこにBarButtonItemを貼り付けたりしていませんか?
Simurated Metricsの設定はStroyboardの見た目上の話なので、それを変更しただけではToolBarを貼り付けられていません。

もしそうしているのであれば、今貼り付けているBarButtonItemを削除し、Simurated MetricsのBottom Barを「Inferred」に戻し、画面内にToolBarを貼り付け、AutoLayoutでToolBarをSafeAreaの下辺にぴったりくっつくように設定すれば、そこにBarButtonItemを貼り付けて画面下に表示できると思います。


(2019/2/6 14:00追記)

Apple標準の写真アプリのような画面遷移を再現するなら、次のように構成します。

イメージ説明

写真一覧画面の右上の「選択」ボタンからの画面遷移(segueの設定)は
次のように「Present Modally」にします。
(さらに写真アプリに合わせるならAnimatesのチェックをOFFにします)
接続先は、Navigation Controllerです。

イメージ説明

遷移先のNavigation ConrollerのrootViewControllerを「項目を選択」の画面にします。
やり方は、先に「項目を選択」の画面を作ってからEmbed InでNavigation Controllerを
作ってもいいし、Navigation Controllerと「項目を選択」の画面をそれぞれ別に作り、
Navigation Controllerから青い線を引っ張ってドロップした時に現れる黒いメニューの中で
Relationship Segueの「root view Controller」を選択して接続してもかまいません。
どちらでも同じことです。

「項目を選択」の画面のSimulated Metricsは全て「Inferred」です。

イメージ説明

そして、ToolBarを貼り付けて次のようにAutoLayoutを設定します。

イメージ説明

投稿2019/02/03 18:36

編集2019/02/06 05:26
TakeOne

総合スコア6299

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

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

ryohasegawa

2019/02/04 03:02

回答ありがとうございます。 確認してみます
ryohasegawa

2019/02/05 04:27

返信おそくなって申し訳ありません。 TabBarで画面を作っているのですか、追記した画像のようにフッターにボタンを配置するにはどうすれば良いですか? フッターにToolBarを設置してみたのですが、ToolBar自体が背面に行ってしまいボタンが表示されません...
TakeOne

2019/02/05 15:07 編集

標準の写真アプリと同じように、先頭画面はTabBarControllerとNavigationContollerを組み合わせた画面になっていて、そこで右上の選択ボタンを押して、追記画面のように上がナビゲーションバーで下がツールバーの画面を表示したいのであれば、先頭画面で選択ボタンを押した時の画面遷移はPresent Modallyで新しいNavigationControllerに画面遷移し、そのrootViewControllerに接続したViewControllerにツールバーを配置すればよいです。
ryohasegawa

2019/02/05 16:43

まず、上がナビゲーションバーで下がツールバーの画面を作りたいのですが、「そのrootViewControllerに接続したViewControllerにツールバーを配置すればよいです。」という意味がわかりません 「そのrootViewController」 とはPresent Modallyで遷移した新しいNavigationControllerの一個前の事ですか? この回答を元に画面作っみました。 追記します。
TakeOne

2019/02/06 05:28

Stroyboardのスクリーンショットを撮って、具体的なやり方を回答に追記しました。
ryohasegawa

2019/02/06 07:38

ありがとうございます! 勉強してきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問