2016-10-19 12 views
1

私はアプリでいくつかの特別なナビゲーションのためのポップオーバーコントローラを使用しようとしています。ストーリーボードには別のポップオーバーコントローラーがないようですので、私はストーリーボードにUIViewControllerを作成しました。それからpopoverクラス、popoverVCを作成しました。ストーリーボードのVCのアイデンティティ・インスペクタ内のクラスのドロップダウン・リストにはpopoverクラスは表示されませんが、入力時にはストーリーボードをクローズして再オープンするときにVCがまだ関連付けられていますpopoverクラス。IOS:ストーリーボードとクラスのポップオーバーコントローラ

しかし、ストーリーボード内のVCの要素からアシスタントエディタのpopoverVCクラスのメソッドまたはプロパティにCtrlキーを押しながらドラッグすると、それが実行されません。

ストーリーボードでViewControllerをクラスにリンクする適切な方法は何ですか?関連する質問として、私はストーリーボードでVCの幅を狭く設定していますが、その幅を無視してポップオーバーフルスクリーンを読み込んでいます。

答えて

0

これはストーリーボードだけでは達成できず、代わりに子コンテナの概念を適用します。

UIView(コンテナ)をviewcontrollerに追加して、ポップオーバーを含める必要があります。また、popover viewcontrollerのビューをそのコンテナに追加する必要があります。

1)ポップオーバーのViewControllerで含むのViewControllerにaddChildViewController:を呼び出す:

は今、あなたはすなわち、特定の順序で実行する必要がある三つのことがあります。

2)コンテナビューでaddSubview:を呼び出し、popover viewcontrollerビューを追加します。

3)ポップオーバーviewcontrollerに含まれているviewcontrollerを使用してdidMoveToParentViewController:を呼び出します。同様

、のViewControllerを除去し、次を実行し

1)親接続を除去するnilとポップオーバーのViewControllerにwillMoveToParentViewController:を呼び出します。

2)popover viewcontroller 'ビューでremoveFromSuperviewを呼び出します。

3)最後に、popover viewcontrollerでremoveFromParentViewControllerを呼び出します。

詳細はthis answerを参照してください。

関連する問題