2010-11-22 2 views
2

NIBを使用して初期化されたカスタムビューコントローラを作成しました。 NIBでは、私はビューアウトレットに特定のサイズを与えました。新しいPopover Controllerを作成してそれを私のカスタムView Controllerで初期化すると、Popover Controllerのコンテンツ領域がNIBで指定したビューのサイズになると予想されましたが、このサイズを無視してデフォルトのPopover Controller代わりにサイズ。UIPopoverControllerはビューコントローラのNIBからサイズを取得できますか?

私はポップオーバーのコンテンツ領域サイズをコードで指定できますが、インタフェースビルダーでこれを行うことはできません。

私のカスタムビューコントローラのviewDidAppearメソッドでは、ビューの境界の幅と高さを表示していますが、それは不思議なことに両方とも0です。何が間違っていますか?

答えて

3

nibにUIViewControllerのcontentSizeForViewInPopoverを指定することはできません。私はviewDidLoadに設定したい。

"プリントアウト"コードが間違っている可能性があります。 NSLogを呼び出す際の細かい点では簡単にトリップすることができます。この方法で試してください:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    NSLog(@"%@", NSStringFromCGSize(self.view.bounds.size)); 
} 

これでうまくいかない場合は、何かが続いています。

1

はい、あなたはでストーリーボードからそれを行うことができます。

  1. は、ビューコントローラのルートビューのサイズを設定します。あなたは(あなたがあなたのビューのサイズを与えたときにデフォルトで読み込まれます)明示的なサイズを指定することができますビューコントローラで
  2. 、ここでは画像です:

Xcode screenshot

警告:私は2 popoversを持っています私は現時点で作業しています - 最初のものは非常によく動作します(インセットを使用して画面上にcenter'dさえあります).2番目はちょうど半分の時間を費やして、正しい幅と間違った高さになっているのだろうと思いました。 ... grrrr、あなたは矢印の方向を設定しない場合、奇妙なものが起こります。

関連する問題