नहीं कहा गया है मेरे पास एक दृश्य नियंत्रक है जो स्टोरीबोर्ड सेगू का उपयोग करके पॉपओवर में प्रस्तुत किया गया है।स्टोरीबोर्ड पॉपओवर खारिज कर दिया गया, प्रतिनिधि विधियों को
पेश दृश्य नियंत्रक में, मैं निम्नलिखित कोड था:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let svc = segue.destinationViewController as? SettingsViewController {
svc.popoverPresentationController?.delegate = self
}
}
हालांकि, यह है कि प्रस्तुत दृश्य नियंत्रक पता चला है, हालांकि यह एक पॉपओवर के रूप में प्रकट होता है, एक modalPresentationStyle
है '.Modal
, और इसलिए nil
popoverPresentationController
। अजीब!
तो, मैं कोड इस प्रकार अद्यतन:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let svc = segue.destinationViewController as? SettingsViewController {
svc.modalPresentationStyle = .Popover
svc.popoverPresentationController?.delegate = self
}
}
svc.popoverPresentationController
प्रतिनिधि अब ठीक सेट कर दिया जाता है, लेकिन अगर पॉपओवर उपयोगकर्ता द्वारा खारिज किया जाता है बाहर दोहन, UIPopoverPresentationControllerDelegate
प्रतिनिधि तरीकों में से कोई भी (जैसे popoverPresentationControllerShouldDismissPopover
हैं ।?। कहा जाता है क्या मुझे याद आ रही
शायद एक बेवकूफ सवाल है, क्या आप वाकई segue के रूप में "वर्तमान सेट कर दिया जाता हैं स्टोरीबोर्ड में "पॉपओवर" के रूप में? –
हां, निश्चित रूप से - और यह एक पॉपओवर के रूप में सही ढंग से प्रस्तुत करता है (और 'svc.modalPresentationStyle = .Popover'' सेट करने से पहले भी किया था। यद्यपि जांच की कीमत! –
एक बात अजीब है, इसे "पॉपओवर के रूप में प्रस्तुत करें" कहना चाहिए, क्योंकि "पॉपओवर" को बहिष्कृत किया जाना चाहिए, लेकिन मुझे नहीं लगता कि यह समस्या है ... –