2

現在、PresentationStyle.PageSheet で VC をモーダルに表示するセグエがあります。私はこれをプログラムとストーリーボードの両方で行いました。両方のアプローチで同じ結果が得られます。モーダル ポップ オーバーは表示されますが、VC から UIView 内のコンテンツは表示されません。ビューの背景色のみが表示され、それだけです。また、デフォルトのモーダル セグエ (フル スクリーン) を実行しても、ページ シートのプレゼンテーション スタイルまたは UIPopoverController の使用で失敗した場合、すべてが表示されることも指摘しておきます。ここに、私が話していることを示すスクリーンショットをいくつか示します。

ストーリーボードでは次のようになります。 絵コンテ

シミュレーターと実際の iPad では次のように表示されます。 ここに画像の説明を入力

私のコーディングアプローチは次のようになります。

@IBAction func addPickUp(){
    var addPickupVC = self.storyboard?.instantiateViewControllerWithIdentifier("pickup") as AddPickupViewController
    addPickupVC.modalPresentationStyle = UIModalPresentationStyle.PageSheet
    self.presentViewController(addPickupVC, animated: true, completion: nil)
}

これは、ipad ios8 用の Swift で書かれています。ここで何が欠けていますか?建設的なフィードバックをお待ちしております。

編集: これは、モーダルに提示される VC のドキュメントの概要です。 概要

4

2 に答える 2

3

ポップオーバーを表示するためのコードは正しいです。
おそらく AutoLayout 制約に問題があります。
ご覧のとおり、ポップオーバーは表示されていますが、ラベルがありません。

  1. AutoLayout を削除して (自動生成されます)、ラベルが表示されるかどうかを確認します。
  2. 新しいラベルを追加してみてください。ドラッグ アンド ドロップし、制約を指定しない
  3. ビューをデバッグする

    • デバッグ パネルの [ビュー階層のデバッグ] ボタンをクリックします。

      ここに画像の説明を入力

    • 今、あなたは心のこもったあなたの見解を見ることができます。ラベルが存在する場合はそれを選択し、それが制約であることを確認します。

      ここに画像の説明を入力

  4. AutoLayout 制約を確認し、Label が正しいサイズ クラス
    に存在することを確認します サイズ クラスは、以下の UI デザイナーに表示されます。私の場合は (Any Any) です。
    これは、すべてのサイズとすべてのデバイスに対応していることを意味します。
    また、制約が実行時に削除されていないことを確認してください。
    右側のインスペクタで確認できます。

    ここに画像の説明を入力

于 2014-11-14T09:48:12.713 に答える
0

ストーリーボードでは、ボタンから提示された Viewcontroller への接続をドラッグするだけで制御できます。これに対して @IBAction を使用する理由はありません。InterfaceBuilder アプローチを使用する場合は、必要に応じてセグエのプレゼンテーション スタイルを PageSheet に設定できます。

于 2014-11-06T17:25:57.497 に答える