Saturday 15 March 2014

ios - Unwind from a button in a table view controller inside a nav controller -


मेरे पास एक स्टोरीबोर्ड में निम्नलिखित नियंत्रक हैं:

 स्टोरीबोर्ड

नेविगेशन नियंत्रक बाईं ओर मुख्य दृश्य नियंत्रक में एक बटन द्वारा segued है। यह एक popover में प्रकट होता है जब उपयोगकर्ता दाईं ओर तालिका दृश्य नियंत्रक के शीर्ष पर "साइन आउट" बटन पर क्लिक करता है, तो मुझे मुख्य दृश्य नियंत्रक पर वापस जाना पड़ता है, एक विधि कॉल करता है जो साइन आउट करता है, और फिर एक प्रमाणीकरण दृश्य नियंत्रक प्रदर्शित करता है ( ऐप का उपयोग नहीं किया जा सकता है यदि उपयोगकर्ता साइन इन नहीं हुआ है) मैं ऐसा करने की कोशिश की है हर तरह से असफल रहा है।

  1. मैं लगभग एक खोलना segue के साथ ऐसा कर सकते हैं, लेकिन अगर मुख्य दृश्य में मेरे खोलना विधि में मैं प्रमाणीकरण देखें नियंत्रक मुझे "प्रस्तुति या खारिज करते समय दृश्य नियंत्रक को खारिज करने का प्रयास" चेतावनी मिलती है एक टाइमर को पूरा करने के लिए बर्खास्तगी के लिए कुछ अनैतिक समय की प्रतीक्षा करने के लिए एक हैक की तरह लगता है। (मैं चाहता हूं कि "आपके सेग्नू ने अभी तक" कॉलबैक पूरा कर लिया है।)

  2. मैं मुख्य व्यू नियंत्रक को सेटिंग्स नियंत्रक के प्रतिनिधि के रूप में सेट करके नहीं कर सकता तैयार फोरेस्टेग्यू विधि और बटन पर क्लिक करते समय उस पर एक प्रतिनिधि विधि को बुलाते हुए, जो आदर्श होगा, क्योंकि सेगू में गंतव्य दृश्य नियंत्रक मेरी सेटिंग्स नियंत्रक नहीं है, यह नेविगेशन नियंत्रक है जो इसे रखता है।

    ऐसा करने का कुछ स्पष्ट तरीका है, है ना? हो सकता है कि सेटिंग्स को देखने वाले नियंत्रक में एक बटन को संलग्न करके खुद को खारिज कर दिया जाए और फिर पूरा ब्लॉक में एक NSNotification बंद हो जाए? यह अभी भी हैकी लगता है।

    आप मुख्य व्यू नियंत्रक तैयार कर सकते हैं सेटिंग नियंत्रक के प्रतिनिधि prepareForSegue विधि, का उपयोग करके:

      सेटिंग्सदृश्य नियंत्रक * सेटिंग्स = [(UINavigationController *) segue.destinationViewController topViewController]; Settings.delegate = self;   

    मुझे लगता है कि आप तब सेटिग नियंत्रक के दृश्य में प्रतिनिधि विधि को कॉल कर सकते हैंडिडाइड अदृश्य विधि।

No comments:

Post a Comment