2017-05-10 3 views
0

Ich habe versucht, ein Popover in Swift 3 zu machen, indem ich einen neuen View-Controller erstellt und als Popover in einem anderen View-Controller, habe ich viele Tutorials gesehen, aber dieser Code scheint nicht zu funktionieren auf schnelle 3. Kann jemand helfen? Es scheint, dass es mir einen Fehler in der App-Delegatendatei gibt.popover code in swift 3 funktioniert nicht

here I am creating the segue with identifier "popoverInfo" so if the Hola button is pressed, it should show the popover view controller

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "popoverInfo" { 

     let popoverVC = segue.destination 
     popoverVC.modalPresentationStyle = UIModalPresentationStyle.popover 
     popoverVC.popoverPresentationController!.delegate = self 




    } 




} 

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle { 
    return UIModalPresentationStyle.none 
} 
+1

Was sagt der Fehler? –

+0

@ MoeAbdul-Hameed: OP sagt "nicht funktioniert", oder nur "Fehler"? Ich hätte schwören können, dass Xcode in solchen Situationen eine aussagekräftigere Ausgabe hat; Vielleicht ist eine Feature-Anfrage in Ordnung. –

Antwort

0

Sie eine popover wie dies erreichen können:

jedoch
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "popoverInfo" { 

    segue.destination.modalPresentationStyle = .popover 

    if let popover = segue.destination.popoverPresentationController { 

     popover.delegate = self 

     popover.sourceRect = // CGRect 
     popover.sourceView = // UIView 
     popover.permittedArrowDirections = .any 
     popover.canOverlapSourceViewRect = // Bool 
    } 
} 

wird Popovers wie normale Modals auf iPhone handeln. Popovers funktioniert nur auf dem iPad. (Es gibt einige Möglichkeiten, es zu hacken, aber ich weiß nicht, ob Apple würde genehmigen)

Dieser Code ist von einem Projekt, an dem ich gerade arbeite, angepasst, lassen Sie mich wissen, wenn es nicht für Sie funktioniert und ich kann schau noch einmal hin.