Präsentieren Popover-View-Controller Swift
Wenn ich versuche, die Anzeige einer popover-view-controller programmgesteuert funktioniert es nicht und ich weiß nicht, warum. Habe ich kopiert aus mehreren Quellen auf dem Netz und nichts scheint zu funktionieren, bekomme ich den gleichen Fehler in der Konsole jedes mal zeigt Warning: Attempt to present <AddFriendsPopoverViewController> on <MainPageViewController> whose view is not in the window hierarchy!
ich bin verloren und kann nicht scheinen, um herauszufinden, was das problem ist, vielen Dank im Voraus!
Hier ist mein swift code in meine viewDidLoad()
Funktion:
let addFriendsPopoverViewController = AddFriendsPopoverViewController()
override func viewDidLoad() {
super.viewDidLoad()
if (PFUser.currentUser()?["numberOfFriends"])! as! NSObject == 0 {
print(PFUser.currentUser()?["numberOfFriends"])
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("AddFriendsPopoverViewController") as! UIViewController
vc.modalPresentationStyle = UIModalPresentationStyle.Popover
vc.preferredContentSize = CGSizeMake(50, 50)
let popoverMenuViewController = vc.popoverPresentationController
popoverMenuViewController!.permittedArrowDirections = .Any
popoverMenuViewController!.delegate = self
popoverMenuViewController!.sourceView = self.view
popoverMenuViewController!.sourceRect = CGRectMake(
100,
100,
0,
0)
self.presentViewController(vc, animated: true, completion: nil)
}
}
BEARBEITEN
Ich fand heraus, dass für ein popover, um mit dem iPhone folgenden code erforderlich ist.
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController!) -> UIModalPresentationStyle {
//Return no adaptive presentation style, use default presentation behaviour
return .None
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrer Sicht nicht in die view-Hierarchie, bis es vorgestellt wurde-und nicht während
viewDidLoad:
Bewegen Sie Ihren code, um
viewDidAppear:
preferredContentSize.
Dein code ist richtig, aber u kann nicht schreiben, dass presentViewController code in die ViewDidLoad-Methode viewdidLoad-rufen bis zu diesem Zeit-controller selbst es nicht vorgestellt, das ist, warum es nicht möglich presentViewController .
Schreiben, dass derselbe code in..