जब मेरे एप्लिकेशन को पृष्ठभूमि में प्रवेश करती है, मेरे रीति से प्रस्तुत दृश्य नियंत्रक तो जैसे एक चेतावनी दृश्य को खारिज करते ...आईओएस 7 में प्रोग्रामेटिक रूप से UIAlertView को ठीक से कैसे खारिज करें?
// called when view controller receives a UIApplicationDidEnterBackgroundNotification
- (void)applicationDidEnterBackground:(NSNotification *)notification
{
if (self.alertView) {
[self.alertView dismissWithClickedButtonIndex:0 animated:NO];
self.alertView = nil;
}
}
जब समाप्त कर दिया गया बिना अग्रभूमि करने के लिए अपने एप्लिकेशन रिटर्न, चेतावनी दृश्य चला गया है। हालांकि, नेविगेशन बार में बार बटन आइटम (एक UINavigationController से) अभी भी मंद हो गए हैं जैसे कि अलर्ट व्यू अभी भी प्रदर्शित किया गया था।
इसके अलावा, मोडल दृश्य नियंत्रक खारिज (एक मंद बार बटन आइटम दोहन से) पता चलता है कि पेश दृश्य नियंत्रक के लिए बार बटन आइटम भी हल्के हो जाते हैं। बार बटन आइटम कार्यात्मक होते हैं, लेकिन वे मंद रहते हैं।
तो कैसे मैं बार बटन आइटम अप्रकाशित मंद हो? या, मैं पृष्ठभूमि में प्रवेश करने वाले ऐप के जवाब में आईओएस 7 में प्रोग्रामेटिक रूप से एक चेतावनी दृश्य को कैसे ठीक से खारिज कर सकता हूं?
iOS 7 यूआई संक्रमण मार्गदर्शिका राज्यों निम्नलिखित:
जब अलर्ट या कार्रवाई चादर दिखाई देता है, iOS 7 स्वचालित रूप से इसके पीछे विचारों का टिंट रंग धुंधली हो जाती है। इस रंग परिवर्तन का जवाब देने के लिए, एक कस्टम व्यू उप-वर्ग जो टिंटकॉलर को अपने प्रतिपादन में उपयोग करता है, उचित होने पर प्रतिपादन को रीफ्रेश करने के लिए tintColorDidChange को ओवरराइड करना चाहिए।
मेरी नेविगेशन बार और बार बटन आइटम कस्टम दृश्य नहीं हैं; मैंने उन्हें उपclass नहीं किया था। मैंने स्टोरीबोर्ड में नेविगेशन बार को उनके डिफ़ॉल्ट विशेषताओं (बार बटन आइटम के साथ) के साथ बनाया है। तो मेरे लिए tintColorDidChange ओवरराइड करने के लिए कोई जगह नहीं है।
मेरे विचार कीसभी उनके tintColor संपत्ति के लिए डिफ़ॉल्ट मान का उपयोग करें।
मैं कोशिश की है फिर से seting सफलता के बिना डिफ़ॉल्ट मान पर रंग का रंग: सफलता नहीं मिली:
if (self.alertView) {
[self.alertView dismissWithClickedButtonIndex:0 animated:NO];
self.view.tintColor = nil;
self.view.window.tintColor = nil;
self.alertView = nil;
}
मैं भी फिर से seting दृश्य नियंत्रक के viewDidAppear में टिंट रंग की कोशिश की है।
मैं भी सफलता नहीं मिली "सामान्य" मुख्य दृश्य के tintAdjustmentMode स्थापित करने की कोशिश की:
if (self.alertView) {
[self.alertView dismissWithClickedButtonIndex:0 animated:NO];
self.alertView = nil;
self.view.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
}
वैसे, अगर एप्लिकेशन समाप्त किया गया, जबकि पृष्ठभूमि में, एप्लिकेशन बार बटन आइटम होने के साथ relaunches सही टिंट (यानी, अन-मंद)।
मेरे अलर्ट विचार पृष्ठभूमि से संक्रमण के माध्यम से आ रहे हैं, मेरी निराशा के लिए बहुत कुछ। मैं इसे और भी देख लूंगा। – HalR
'[[UIAplplication sharedAplication] keyWindow] का उपयोग करके, जांचें कि वर्तमान में सक्रिय विंडो क्या है। चूंकि UIAlertView की अपनी खिड़की है, इसलिए हो सकता है कि वह विंडो ठीक से खारिज न हो जाए, जिससे आपकी बार (बटन आइटम) मंद हो जाए। ऐप फिर से सक्रिय होने से पहले आप इसे खारिज करने का भी प्रयास कर सकते हैं ('आवेदन: willEnterForeground:')। –