1

拡張されたプレゼンテーション スタイルで使用したいiMessage 拡張機能を作成していUINavigationControllerます。MSMessagesAppViewController以下の関数を使用して、ナビゲーションコントローラーをサブビューとして追加しようとしています:

private func present(viewController: UIViewController) {
    viewController.view.frame = view.frame

    addChildViewController(viewController)
    viewController.didMove(toParentViewController: self)

    view.addSubview(viewController.view)
}

ナビゲーション コントローラーは、ナビゲーション バーが iMessage 自体のトップ バーのすぐ下から始まる従来の方法で表示されることを期待していました。期待される結果については、次の図を参照してください。

期待される結果

ただし、view.frame実際には iMessage のトップバーの下まで伸びているようです。そのため、私のナビゲーション コントローラーのナビゲーション バーは、iMessage のトップ バーの下に隠されています。ただし、スクロール ビュー自体のコンテンツ ビューは、さらにカスタマイズしなくても正しく配置されます。実際の結果については、次の図を参照してください。

実結果

もちろん、ナビゲーション コントローラーのフレームをトップ バーのすぐ下から開始するように設定することもできます。ただし、ハードコードされた位置にあまり依存しないソリューションを探しています。これを行うと、その半透明効果のために、スクロール ビューも iMessage のトップ バーの下に継続しなくなります。

スクロール ビューがデフォルトで表示されるように、ナビゲーション バーは iMessage のトップ バーのすぐ下に表示されるのが理想的です。

誰もこれに対する解決策を知っていますか?

4

1 に答える 1