問題タブ [view-hierarchy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
2070 参照

swift - 子ビュー コントローラーには親ビュー コントローラーが必要ですが、実際の親は (UIViewControllerHierarchyInconsistency) です。

初期ウィンドウとして UITabbarController を持つアプリがあります(ログイン後、rootViewControllerとして設定します)

この tabbarController には 4 つの異なるタブがあり、これらはすべて UINavigationController に埋め込まれた UIViewController です。

私の tabbarController では、初期構成を行っているときに、次のようにタブを設定します。

  • まず、viewController を作成します。

    /li>
  • 次に、それらを navigationControllers 内に埋め込みます。

    /li>
  • 最後に、navigationControllers を tabbarController の viewControllers として追加します。

    viewControllers = [navController1,navController2,navController3,navController4]

私はそれをオンラインで調べましたが、この使用方法は正しいようです。例: https://medium.com/@ITZDERR/uinavigationcontroller-and-uitabbarcontroller-programmatically-swift-3-d85a885a5fd0 . ただし、以下のようにライブ アプリからクラッシュ ログを受信して​​います

ここでの問題は、クラッシュが profileViewController が navigationController の親である必要があることを示していますが、profileViewController を navigationController 内に埋め込み、tabbarController の viewControllers として追加したため、私の意見では順序が正しいことです。

このクラッシュを検索したところ、addChildViewController を使用するか、どこかで親を削除するステップをスキップしているようですが、わかりませんでした。

これへの関連リンクを見つけましたが、それらのどれもがこの問題を解決するのに役立ちませんでした。

リンクの例: