स्विफ्ट 4 यहाँ पूरी तरह से कूट चल रहा है। तो यहाँ आप 250x250 के आकार के साथ पॉप अप विंडो देखेंगे:
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
}
}
ध्यान आप popVC पहचानकर्ता एक ViewController करने के लिए आप एक पॉपअप के रूप में प्रस्तुत करना चाहते हैं प्रदान करने के लिए है कि में ले लो।
आशा है कि मदद करता है!
स्रोत
2018-01-26 03:23:35
इसके लिए धन्यवाद! पहला उदाहरण काम करता है लेकिन यह आकार को आकार देने लगता है। पॉपओवर बस पूर्ण स्क्रीन आता है। मुझे लगता है कि आपके द्वारा समझाया गया दूसरा तरीका बेहतर तरीका होगा .. लेकिन एक बार फिर मुझे एक त्रुटि मिलती है IBCocoaTouchoutlet एंकर व्यू कनेक्शन का पालन नहीं कर सका। क्या आप मुझे कुछ कोड दे सकते हैं जो आपके द्वारा समझाया गया दूसरा तरीका होगा? – user4671001
@ user4671001 मुझे समझ में नहीं आता है, दूसरी तरफ आपको एन्कोव्यू को सेट करने की आवश्यकता नहीं है –
पॉपओवर आईफ़ोन पर पूर्णस्क्रीन मोडल के रूप में दिखाता है, आप इसे इस फ़ंक्शन को जोड़कर अक्षम कर सकते हैं: 'func अनुकूली प्रस्तुति स्टाइलफोर प्रस्तुति नियंत्रक (पीसी: यूआईपी प्रस्तुतकरण नियंत्रक!) - > UIModalPresentationStyle { // यह * बलों * आईफोन पर एक पॉपओवर प्रदर्शित किया जाएगा। कोई } ' – user1076813