2010-05-18 17 views
10

से UITabBarController का वैल्यू मेरे पास एक टैबबार नियंत्रक है जो AppDelegate में स्थापित है और इसमें कुछ UIViewControllers हैं जो Nav Controllers के साथ हैं। टैबबार आइटमों में से एक में, मैंने कुछ UIViews को धक्का देने के बाद, मैं एक अलग टैबबार आइटम के बैजवैल्यू आइटम को अपडेट करना चाहता हूं।बैज को अपडेट करने का सबसे अच्छा तरीका UIView

ऐसा करने का सबसे अच्छा तरीका क्या है? एकमात्र तरीका मैं वास्तव में सोच सकता हूं कि एनएसएनोटिफिकेशन और मूल्य के लिए सिंगलटन स्टोरेज है, लेकिन ऐसा लगता है कि कुछ आसान काम है, और मुझे एनएसएनोटिफिकेशन के बारे में कोई जानकारी नहीं है।

मुझे super.tabBarController.otherView.tabBarItem.badgeValue = @ "1" (जैसा कि मैंने सेट किया है कि एक ही टैब में कौन सा टैब चुना गया है) पर एक जंगली अनुमान था, लेकिन मुझे आश्चर्य नहीं है कि यह काम नहीं करता है ।

धन्यवाद

उत्तर

34

धन्यवाद किया जाना चाहिए कोड है:

[[super.tabBarController.viewControllers objectAtIndex:2] tabBarItem].badgeValue = @"1"; 
0

मैं हाथ पर कोड अभी नहीं है, लेकिन यह जो मुझे सही दिशा में इशारा किया alku83 के लिए कुछ अधिक

तरह
...otherViewController.tabBarItem.badgeValue = 1; 
+0

यह सच है, मैं अपने मूल प्रश्न बदल दिया है, नहीं था ' टी इसे ठीक करने में मदद करें हालांकि :( – Rudiger

+0

सुनिश्चित करें कि आप बैज को एक पूर्णांक मान पर सेट कर रहे हैं, न कि एनएसएसटींग मान। यदि यह अभी भी काम नहीं कर रहा है तो आप TabBarItem के लिए एक आईबीओलेट बना सकते हैं और इसे इस तरह संदर्भित कर सकते हैं। –

+0

मैंने वास्तव में सेट किया है यह AppDelegate में यह सुनिश्चित करने के लिए कि यह काम करता है और यह Accep एक स्ट्रिंग ts। मैं आईबीओटलेट के बारे में इतना निश्चित नहीं हूं क्योंकि मैं कोड के माध्यम से निब में सबकुछ जोड़ता हूं, आईबीऑलेट केवल तभी काम करेगा जब यह nib – Rudiger

6

मैं स्टोरीबोर्ड और आईओएस 6 के साथ एक्सकोड 4.5 का उपयोग कर रहा हूं, इसलिए जवाब मूल रूप से पोस्ट होने के बाद बदल सकता है।

सबसे पहले आप इस तरह टैब बार नियंत्रक का उपयोग करने के लिए है:

UITabBarController *tabController = (UITabBarController *)self.window.rootViewController; 

तो फिर तुम तो जैसे बिल्ला सेट कर सकते हैं:

[[tabController.viewControllers objectAtIndex:1] tabBarItem].badgeValue = @"New!"; 
संबंधित मुद्दे