Swift 4 hier voll arbeitet Code.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// in case if you don't want to make it via IBAction
button.addTarget(self, action: #selector(tapped), for: .touchUpInside)
}
@objc
private func tapped() {
guard let popVC = storyboard?.instantiateViewController(withIdentifier: "popVC") else { return }
popVC.modalPresentationStyle = .popover
let popOverVC = popVC.popoverPresentationController
popOverVC?.delegate = self
popOverVC?.sourceView = self.button
popOverVC?.sourceRect = CGRect(x: self.button.bounds.midX, y: self.button.bounds.minY, width: 0, height: 0)
popVC.preferredContentSize = CGSize(width: 250, height: 250)
self.present(popVC, animated: true)
}
}
// This is we need to make it looks as a popup window on iPhone
extension ViewController: UIPopoverPresentationControllerDelegate {
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
}
Nehmen Sie in der Aufmerksamkeit, die Sie popVC Kennung eines Viewcontroller Sie präsentieren als Popup zu bieten haben: So, hier werden Sie Popup-Fenster mit einer Größe von 250x250 zu sehen.
Hoffe, dass hilft!
Danke dafür! Das erste Beispiel funktioniert, aber es scheint die Größe nicht zu verändern. Das Popover erscheint nur im Vollbildmodus. Ich denke, die zweite Art, die Sie erklärt, wäre ein besserer Weg .. Aber noch einmal bekomme ich einen Fehler konnte nicht Verbindung IBCoaTouchoutlet Anker Ansicht zu entsprechen. Könnten Sie mir einen Code geben, der mit der von Ihnen erklärten zweiten Möglichkeit übereinstimmt? – user4671001
@ user4671001 Ich verstehe nicht, in der zweiten Weise müssen Sie nicht die AnchoView für nichts festlegen –
Popover zeigt als Vollbildmodus auf iPhones, können Sie dies deaktivieren, indem Sie diese Funktion hinzufügen: 'func adaptivePresentationStyleForPresentationController (PC: UIPresentationController!) > UIModalPresentationStyle { // Dies * erzwingt * ein Popover, das auf dem iPhone angezeigt wird Rückkehr .Keine } ' – user1076813