2016-04-22 5 views
1

Ich versuche, die Ansicht mit Popover anzuzeigen. Da UIPopoverController nicht auf IPhone funktioniert, verwende ich WEPopoverController.WEPopoverController show view und nach der Sekunde geschlossen

Mein Code:

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]; 

Wenn ich das Programm starten, sehe ich einen Pop über Fenster, die sofort verschwindet. Wenn ich UIPopoverController auf IPhone Programmabsturz benutze, funktioniert auf iPad alles richtig.

Was muss ich mit WEPopoverController tun, damit es funktioniert?

Alexander.

+0

Jetzt Popover sind in iPhone iOS8 möglich. Sie können - (UIModalPresentationStyle) adaptivePresentationStyleForPresentationController: (UIPresentationController *) Controller { return UIModalPresentationNone; }, um das gleiche Popover in iPhone –

Antwort

1

Das liegt daran, dass der View-Controller nicht das von Ihnen erstellte Popover besitzt. Es gibt keinen starken Verweis darauf, und ARC hat festgestellt, dass der Referenzzähler des Popover 0 ist, und sofort freigeben. Alles was Sie tun müssen, ist das Popover als Eigenschaft des View-Controllers nach der Erstellung zu machen.

+0

zu zeigen Vielen Dank! Ich mache WEPopoverController als Eigenschaft meines MasterViewController. Sollte ich UIViewController auch als Eigenschaft von MasterViewController machen? – alisichkin

+0

Nein, weil das Popover es besitzt – MudOnTire

Verwandte Themen