इसलिए मुझे यह समस्या थी और मैं इसे केवल एक प्रतिनिधि समारोह को लागू करके हल करने में सक्षम था। मेरी स्थिति पट्टी की पृष्ठभूमि काली है, और इसलिए मेरे आवेदन के लिए UIStatusBarStyle है ।LightContent। जब मैंने डिवाइस संग्रहण से एक तस्वीर का चयन करने के लिए UIImagePickerController प्रस्तुत किया, तो स्थिति पट्टी ठीक थी। हालांकि, "कैमरा रोल" या "पसंदीदा" जैसी निर्देशिका में क्लिक करने पर, प्रभावी ढंग से नेविगेशन स्टैक पर धक्का, स्थिति पट्टी गायब हो गई। एक तस्वीर का चयन करने पर, कोई भी स्थिति पट्टी नहीं थी; एक और मोडल व्यू कंट्रोलर को खारिज करने पर, केवल बैटरी ही मौजूद थी, बाकी स्टेटस बार को इंगित करते हुए काला भी हो सकता है।
मैंने UIImagePickerController का विस्तार करने जैसे कुछ अन्य समाधानों की कोशिश की, लेकिन स्विफ्ट में, आप एक्सटेंशन का उपयोग करके ओवरराइड नहीं कर सकते। मैंने तब UIImagePickerController को उप-करने की कोशिश की और viewWillAppear () पर अपनी स्थिति पट्टी को छिपाने की कोशिश की और viewWillDisappear पर स्थिति बार को अनहाइड कर रहा है। मैं .Slide एनीमेशन के साथ स्टेटस बार को छिपाने में सक्षम था, लेकिन जब से किसी डायरेक्टरी को चुनने पर स्टेटस बार अदृश्य हो जाता है, मैं स्टेटस बार को अनहाइड नहीं देख पा रहा था। फिर, हरे रंग की बैटरी मोडल व्यू कंट्रोलर को खारिज करने पर अदृश्य स्थिति के बाकी हिस्सों के साथ वापस आ गई। मैंने प्रीफरस्टैटसबर्हिड () को ओवरराइड करने का भी प्रयास किया, लेकिन उस फ़ंक्शन को कभी भी कॉल नहीं किया गया था, इसलिए मैंने सिस्टम द्वारा कॉल किए जाने वाले प्रीफ़रस्टैटसबर्हाइड () को सुनिश्चित करने के लिए सेटनएड्सस्टैटबर्बरसुरेन्सयूपडेट () को कॉल करने की कोशिश की, लेकिन यह अभी भी नहीं कहा जाता है। इसके अलावा, वहाँ प्रतिनिधि पट्टी विधि नेविगेशनController willShowViewController पर छिपा होने की स्थिति निर्धारित करने का सुझाव है। एक बार फिर, यह सब करता है स्थिति पट्टी को छिपाता है, जो समस्या को हल नहीं करता है। जैसा कि यह पता चला है, ऐसा लगता है कि UIImagePickerController के नेविगेशन स्टैक को धक्का देने पर स्टेटस बार शैली बदल जाती है। समस्या को पूरी तरह से हल करने के लिए, मुझे एक्सटेंशन या उपकथा UIImagePickerController नहीं लिखना था। आपको बस इतना करना है कि प्रतिनिधि को सेट करें और उसी रहने के लिए स्टेटस बार स्टाइल सेट करें। इस जोड़ ने इसे ऐसा बना दिया मानो समस्या कभी मौजूद ही नहीं थी। ऐसा लगता है कि UIImagePickerController के नेविगेशन स्टैक को पुश करने पर स्टेटस बार स्टाइल बदल जाता है। समस्या को पूरी तरह से हल करने के लिए, मुझे एक्सटेंशन या उपकथा UIImagePickerController नहीं लिखना था। आपको बस इतना करना है कि प्रतिनिधि को सेट करें और उसी रहने के लिए स्टेटस बार स्टाइल सेट करें। इस जोड़ ने इसे ऐसा बना दिया मानो समस्या कभी मौजूद ही नहीं थी। ऐसा लगता है कि UIImagePickerController के नेविगेशन स्टैक को पुश करने पर स्टेटस बार स्टाइल बदल जाता है। समस्या को पूरी तरह से हल करने के लिए, मुझे एक्सटेंशन या उपकथा UIImagePickerController नहीं लिखना था। आपको बस इतना करना है कि प्रतिनिधि को सेट करें और उसी रहने के लिए स्टेटस बार स्टाइल सेट करें। इस जोड़ ने इसे ऐसा बना दिया मानो समस्या कभी मौजूद ही नहीं थी।
let pickerController = UIImagePickerController()
pickerController.delegate = self
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false)
}