8

状況: 2 つの UITabBarController があり、それぞれに独自のタブがありますが、両方の最後のタブは同一であるため、1 つのUIViewController にコンテンツを表示する必要があります。

実行時の問題: 共有アイテムは、表示されたときにいずれかのタブ セットにのみ表示されます。

質問: これを機能させる方法を知っている人はいますか?

ストーリーボード設定の外部グラフィックへのリンク: (申し訳ありませんが、ここに画像を投稿するのに十分な評判がありません!) ストーリーボード グラフィック

そのストーリーボードを含む Xcode プロジェクト: XCode Project

各タブ コンテンツ アイテムには、独自の UIViewController クラスがあります。戻るボタンを機能させる行以外には、コードは含まれていません。

(はい、私はこれが奇妙であることを知っています。実際の状況は、タブ コントローラーがポップオーバーに表示される iPad アプリです。ポップオーバーは、さまざまなオブジェクトがさまざまなプロパティを持つ「プロパティ エディター」ですが、すべてが共通のプロパティ セットを共有しています...したがって、1 つのタブ「独自の」小道具の場合、すべてのオブジェクトが持つ「共通の」小道具用の 1 つの共有タブ コンテンツ。)

必要な効果を得るためにこれを回避する方法をいくつか見つけましたが、このストーリーボードが機能する場合は、はるかに簡単な解決策になります。

-- 質問とは関係のないその他の情報 --

私が使用している代替ソリューション: TabBarControllers は、タブ コンテンツとして 1 つの VC にのみリンクします。そのタブ VC が読み込まれると、コードを使用して、(a) ストーリーボードから識別子によって共有 VC をインスタンス化し、(b) [tabController setViewControllers:list animation:NO] を介してその新しい VC オブジェクトを TabBarController に追加します。

(私があまり好きではない別の可能な解決策: TabBarController を使用せず、独自の「タブ」グラフィックを描画してコンテンツ VC を提示し、それぞれが「自分自身」が選択されていることを示します。Yuk.)

だから私は実用的な解決策を持っています.なぜこれが機能しないのか興味があります.

4

3 に答える 3

0

同じビュー コントローラー インスタンスを 2 つのタブ コントローラーに配置することはできません。問題は、ビュー ( UIView) インスタンスが 1 つの親ビュー ( ) しか持てないことsuperviewです。ビュー コントローラーを 2 番目のタブに追加しようとすると、ビュー コントローラーのビューが最初の親 (最初のタブ) から削除され、2 番目のタブに追加されます。

于 2013-03-02T17:27:34.767 に答える
0

今日、この同じ問題に遭遇しました。私はそのトリックを行うと思われる回避策を思い付くことができました。重要なのは、タブバーと再利用したいコントローラーの間に分離レイヤーを追加することです。各タブバーから、コンテナー ビューを持つ個別の UIViewController への関係を作成しました。次に、コンテナから実際にタブビューとして再利用したいコントローラーへの「埋め込み」セグエを実行できます。再利用のケースごとにコントローラー クラスを作成する必要があるため、直接接続ほどクリーンではありません (サポートされていない理由は不明です)。これは、使用するたびに実際のタブ ビュー (およびそれに接続する追加のビュー) を複製しなければならないという悪夢よりも優れたソリューションです。

お役に立てれば。詳細が必要な場合はお知らせください。

于 2015-01-02T21:44:48.877 に答える
0

今日同じ問題が発生しているときに、あなたのスレッドに出くわしました...解決策は、ストーリー ボードでビュー コントローラーの複製を作成し、その複製を他のタブ バー コントローラーにアタッチすることです。私はそれをやっただけで動作します...これについては「rdelmar」が正しいと思います...コピーして設定してください..!!

于 2013-12-18T14:22:38.273 に答える