मैं एक दृश्य - PresentedView
को एक और दृश्य पर देखना चाहता हूं - Background View
आईओएस 7 का उपयोग कर। मेरे ऐप में, मैं UITabBArController
का उपयोग कर रहा हूं, इसलिए रनटाइम पर मुझे नहीं पता कि कौन सा दृश्य पृष्ठभूमि दृश्य होगा (टैब बार आइटमों में से कोई भी हो सकता है)। नीचे संरचना होती है:UIModalPresentationStyle.CurrentContext स्विफ्ट आईओएस 7
UITabBarController
---> TabItem1 - FirstUIViewController
---> TabItem2 - SecondUIViewController
---> TabItem3 - ThirdUIViewController
कुछ इस तरह की जरूरत है:
एप्लिकेशन के लोड, मैं TabItem1 - FirstUIViewController
पर हूँ है। जब मैं TabItem3
पर क्लिक करता हूं, तो मुझे पर शीर्ष पर दिखाई देने के लिए ThirdUIViewController
और 'FirstUIViewController' पृष्ठभूमि में दिखाई देना चाहिए, जिसमें कोई उपयोगकर्ता इंटरैक्शन सक्षम नहीं है।
मैं अब तक क्या किया:
, के बाद से
UIViewControllers
Relationship Controllers
रूप में जोड़ा जाता मेंTabBar Item
के रूप में प्रकट करने के लिए `UITabBarController, मैं TabBarController से ThridViewController को एक segue गयी।UIModalPresentationStyle.CurrentContext को यह Segue के लिए बदल दिया है PresentationStyle और सफेद पृष्ठभूमि के साथ संशोधन नीचे किया
func `viewDidLoad()` { super.viewDidLoad() self.performSegue("identifier", sender: self) }
कुछ नहीं होता और मैं बस देख 'ThridViewController'
मैंने मैन्युअल कोडिंग दृष्टिकोण की कोशिश की:
func `viewDidLoad()` { super.viewDidLoad() let overlayController:UIThirdViewController = UIThirdViewController() //This controller has a view added on top of it, which covers top half screen only overlayController.modalPresentationStyle = UIModalPresentationStyle.CurrentContext self.presentViewController(overlayController, animated: true, completion: nil) }
कोई बदलाव नहीं। नया दृश्य प्रीवियो दृश्य को ओवरराइड करता है। अगर मैं इस overlayController.view.backgroundColor = UIColor.clearColor()
जोड़ने के लिए, मैं आधी स्क्रीन काले और मेरी नई दृश्य आधा युक्त
समस्या अंक देखें:
- मैं प्रारंभ करने में कोड कहाँ लिखना चाहिए/फोन ThirdViewController शीर्ष पर प्रकट करने के वर्तमान दृश्य का?
- कैसे काली स्क्रीन समस्या को हल करने और यह iOS 7 पर काम करने के लिए?
मैं Xcode 7 उपयोग कर रहा हूँ और iOS7 पर चल रहा है। कृपया मदद करे। वर्किंग कोड स्निपेट की सराहना की जाएगी। जब तक कोड काम करता है & आप अपने दम पर की कोशिश की है, जवाब के रूप में अन्य ढेर अतिप्रवाह पदों पोस्ट न करें।
अद्यतन: - इस दृष्टिकोण के साथ, मैं एक काली स्क्रीन मिल
class TabBarViewController: UITabBarController, UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
}
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {
let switchController:UIViewController = SwitchViewController()
self.presentingViewController?.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
self.presentingViewController?.view.backgroundColor = UIColor.clearColor()
self.presentViewController(switchController, animated: true, completion: nil)
return false
}
}
में मेरी ** अद्यतन की जांच करें ** यह iOS 7 पर काम करता है? – Sategroup
हां, मुझे विश्वास है कि इन एपीआई addChildViewController के संस्करण समर्थन को देखकर आईओएस 5 के आसपास रहे हैं। – bobics