2016-04-22 22 views
1

私はポップオーバーを使用して表示を試みます。 UIPopoverControllerはIPhoneで動作しないので、私はWEPopoverControllerを使います。WEPopoverControllerビューを表示して後で終了しました

マイコード:

UIViewController *controller = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"GetDateController"]; 
controller.modalPresentationStyle = UIModalPresentationPopover; 
WEPopoverController *pop = [[WEPopoverController alloc] initWithContentViewController:controller]; 
pop.delegate = self; 
CGRect screen = [[UIScreen mainScreen]bounds]; 
CGRect r = CGRectMake(8, 8, screen.size.width-8, 57); 
pop.popoverContentSize = r.size; 
[pop presentPopoverFromRect:CGRectMake(200, 100, 0, 0) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

私はプログラムを起動すると、私はすぐに消え、ウィンドウの上にポップアップを参照してください。 IPhoneプログラムクラッシュでUIPopoverControllerを使用すると、iPad上ですべて正常に動作します。

WEPopoverControllerを動作させるには何が必要ですか?

アレクサンダー。

+0

iOS8を起動してiPhoneでポップオーバーが可能です。 - (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)コントローラを使用できます。 return UIModalPresentationNone; } iPhoneで同じポップオーバーを表示する –

答えて

1

これは、作成したポップオーバーを所有していないため、強力な参照がなく、ARCがポップオーバーの参照カウントが0であることを検出してすぐに解放するためです。作成後に、ポップオーバーをView Controllerのプロパティとして作成するだけです。

+0

ありがとうございました! 私はMasterViewControllerのプロパティとしてWEPopoverControllerを行います。 MasterViewControllerのプロパティとしてUIViewControllerを行う必要がありますか? – alisichkin

+0

いいえ、ポップオーバーが所有しているため – MudOnTire

関連する問題