ナビゲーションコントローラー内のタブバーコントローラー、またはナビゲーションルートビューの共有
質問
のように構造化されたUIを実装しようとしています。 Tweetie トップレベルのビューコントローラーはナビゲーションコントローラーのようで、そのルートビューは "Accounts"テーブルビューです。 トップレベルのビューコントローラーはナビゲーションコントローラーのようで、そのルートビューは "Accounts"テーブルビューです。 各タブ項目は異なるリストを表示し、さらにドリルダウンすることができます (後続のレベルではタブバーは表示されません)。
ということで、実装の階層はこのような感じです。
-
UINavigationController
-
アカウント
:
UITableViewController
-
UITabBarController
-
ツイート
:
UITableViewController
- ツイート/ユーザー/等の詳細表示
-
返信
:
UITableViewController
- ...
-
ツイート
:
-
アカウント
:
これは動作するように見えますが[^1]、SDK のドキュメントによれば、以下のようにサポートされていないようです。
-pushViewController:animated:
の SDK ドキュメントによるとサポートされていないようです (強調)。
ビューコントローラ : スタックにプッシュされるビューコントローラーです。 タブバーコントローラのインスタンスであってはならない。
プライベートAPIなどは避けたいのですが、問題なく使えそうなのに、なぜこの使い方が明示的に禁止されているのかが分かりません。 どなたか理由をご存知でしょうか?
タブバーコントローラーをメインコントローラーとして、各タブに別々のナビゲーションコントローラーを入れることを考えたことがあります。 この問題は、各ナビゲーション コントローラが単一のルート ビュー コントローラを共有する必要があることです (すなわち、" Accounts" テーブルが Tweetie ) -- これはうまくいかないようです。テーブルコントローラを2番目のナビコントローラにプッシュすると、1番目のコントローラから削除されるようです。 テーブル コントローラーを 2 番目のナビゲーション コントローラーにプッシュすると、最初のコントローラーから削除されるようです。
どのように私はこれを正しい方法で実装すべきでしょうか?
[^1]: タブバーコントローラはサブクラス化する必要があり、そのレベルのタブバーコントローラのナビゲーションアイテムは選択されたタブのナビゲーションアイテムと同期したままであり、個々のタブのテーブルコントローラはそれぞれの詳細ビューを
self.tabBarController.navigationController
ではなく
self.navigationController
.
どのように解決するのですか?
前の2つの回答は正しいです。
UITabBarController
を使用していません。 カスタム
XXTabBarController
(のプレーンなサブクラス)を書くのはとても簡単です。
UIViewController
のサブクラス)であり、ナビコントローラスタックに押し出されることを喜んでいますが、まだ "ビューコントローラ" の哲学によって生きています。 アカウント固有のビューの各「タブ」(
Tweets
/
Replies
/
Messages
) はそれ自身のビューコントローラであり、それらに関する限り、画面上で入れ替わるのは、単純な ol
UITabBarController
.
関連
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] UITextViewのキーボードをリターンキーで解除するには?
-
[解決済み] Mobile Safariで電話番号のリンクを無効にする方法を教えてください。
-
[解決済み] iOS UITableViewのHeaderView(セクションヘッダーではない)を追加する
-
[解決済み] NSDictionaryをNSDataに、またはNSDataをNSDictionaryに変換するにはどうすればよいですか?
-
[解決済み] iOSアプリでドキュメントフォルダ内にフォルダを作成する
-
[解決済み] Xcodeで非推奨の警告を抑制する
-
[解決済み] iPhoneのSafariで<body>に適用したoverflow:hiddenは機能するのか?
-
[解決済み] 現在のメソッド呼び出しのスレッド ID を取得する
-
[解決済み] UITableViewのセクションヘッダーのデフォルトの高さ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] iOSでHTMLをNSAttributedStringに変換する
-
[解決済み] モバイルSafari(iPhone)でテキストエリアのインナーシャドウを除去する
-
[解決済み] レビュー待ちの状態でバイナリを拒否する(バイナリ拒否ボタンが見つからない)
-
[解決済み] ITunesのレビューURLとiOS 7(ユーザーにアプリを評価してもらう)AppStoreに空白のページが表示される。
-
[解決済み] UIImageのアスペクト比と幅を維持したリサイズ
-
[解決済み] drawRectを使うか使わないか(drawRect/Core Graphicsとsubview/imagesをいつ使うか、なぜ使うか)?
-
[解決済み] Objective-Cのプロトコルでプロパティを含むものはどう扱えばいいのか?
-
[解決済み] iPhone-Portrait-NumberPadキーボードでタイプ4をサポートするキープレインが見つからない; 3876877096_Portrait_iPhone-Simple-Pad_Defaultを使用
-
[解決済み] iOS: HTTP POST リクエストを実行するには?
-
[解決済み] CALayersを使ったUIViewの丸め方 - 角の一部だけ - How?