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

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

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

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

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

Swift

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

Q&A

解決済

2回答

2045閲覧

サイドメニューのあるアプリの設計方針

bbdd

総合スコア43

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/07/29 11:14

編集2019/07/29 14:01

前提

  • iOSアプリ
  • ネイティブアプリ

実現したいこと

仕様

  • タブバーを持ち、タブのアイテム数は3つです
  • タブバーのルートになる各画面はナビゲーションバーを持ちます
  • ナビゲーションバーにはサイドメニューを表示するボタンがあります
  • サイドメニューは各タブ画面のトップには必ず付いています
  • サイドメニューに表示するコンテンツは共通です

図にすると下記のようになります。

画面仕様イメージ

また、サイドメニューを実装するに当たってはContainer Viewを使用し下記のように作成するつもりです。

サイドメニュー実装

出典: 『iOS アプリ開発 - UI 実装であると嬉し いレシピブック 少しの工夫とアイデアでできる表現集 Just1factory 著』

相談内容

みなさんであればどうするのかお聞きしたいです。

サイドメニューを各画面で表示するという上述の仕様を満たすために、各タブのルート画面となるViewControllerにて
サイドメニューの実装(= Container Viewを使用しての実装)をしようと思っております。
ただこの場合、サイドメニューとして表示するコンテンツは同じものなのに、各画面でサイドメニューのUIを実装することになってしまいます。

可能であれば、サイドメニューを1つ作成し、それを各画面から呼び出せると構成は綺麗なのかなと思いました。

後者のような実装は可能でしょうか?(windowに貼り付ければ良い?)
それとも前者のように、各画面で実装するのがベターなのでしょうか?

みなさまであればどのようにされるのか伺ってみたく投稿させて頂きました。
些細なことでもご返答頂けますと幸いです。

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

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

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

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

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

gentaro

2019/07/29 13:43

皆さんであればどうするか、という問いかけは解決策の丸投げに見えてしまうので、現在の設計方針で判明している問題点(困っていること)についての解決策(調べたけどわからないこと)を質問する、というスタンスの方が良いと思います。
fuzzball

2019/07/30 00:42

そのサイドメニューのViewを共用するだけの話ではないのですか?(それが可能かどうかを聞いてる?)
bbdd

2019/07/30 05:29

viewのインスタンスはシングルトンを利用して共有するつもりです。 インスタンスは共有するにしても、各タブ画面のルート画面ではコンテナビューを利用してサイドメニューを組み込む必要があります。 サイドメニューは共通のViewなのでコンテナビューを各タブで作成せずにそこも共通化できればいいなと思った次第です。 分かり辛い説明ですみません。。
guest

回答2

0

ベストアンサー

ベースとなる画面に2つのコンテナービューがあり、
一つがサイドバー用のビューコントローラー、
もう一つが「コンテンツ」ではなく、「ナビゲーション+タブの付いたビューコントローラー」にすれば悩みは解決しますかね?

投稿2019/07/30 01:50

takabosoft

総合スコア8356

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

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

0

方針としては

・ベースとなる画面に2つのコンテナービューを作成する
・1つをサイドバー用のビューコントローラーとする
・1つをタブビューコントローラーとする
となります

takabosoftさんのご指摘内容と同じです。
下記URLが詳しいです。

https://fluffy.es/twitter-slide-menu-1/

投稿2019/08/24 17:57

編集2019/08/24 17:57
bbdd

総合スコア43

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問