2011-07-24 14 views
0

私はボタンを押したときにUIDatePickerを表示するようにポップオーバーを設定しようとしていますが、非常に混乱するような動作をしています。私はUIDatePickerしか収容されていないビューコントローラを作成し、クラスの有線1アップは、私はそれを必要とし、このような新しいUIPopoverControllerにこれを追加しました:UPCopoverControllerの動作が混乱しています

self.timePickerPopoverController = [[UIPopoverController alloc] initWithContentViewController:self.timePickerViewController]; 

が、私はそうのようにそれを提示:

[timePickerPopoverController presentPopoverFromRect:prepTimeButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

(prepTimeButtonは押されたボタンです)。 (それは今あまりにも背が高いです、それが押され、ターゲットサイズにあったボタンの隣に表示する代わりに、

Broken UIPopoverController

;日付のみのサイズでなければなりません。しかし、私は次のような結果を得ますピッカー)。私はまた、表示する適切な場所とサイズのカスタムビューを与えることを試みたが、それはあまり役に立たなかった(ちょうどスクリーンの右半分にpopoverを移動した)。私は間違って何をしていますか?それをどうやって修正しますか?

答えて

1

self.viewダイレクトスーパービューprepTimeButtonですか?おそらくprepTimeButtonはサブビューにネストされているので、その場合はinView:パラメータとして使用する必要があります(または座標を変換する)。

ビューコントローラのcontentSizeForViewInPopoverプロパティを設定しましたか?

+0

'prepTimeButton'は確かに' self.view'の直接のサブビューです。 'contentSizeForViewInPopover'を設定するとサイズの問題は修正されましたが、画面の左上に表示されます(前述のカスタムビューを適切な場所に表示しようとしても)。 – RCIX

+0

そのボタンの親クラスは何ですか? TableViewまたはScrollViewの場合は、ボタンのrectのオフセット計算を追加する必要があります。 –

0

contentSizeForViewInPopoverを内部ビューコントローラに、popoverContentSizeを両方ともUIPopoverControllerに設定してください。