2011-10-12 7 views
9

अपने आवेदन में यहाँ आईओएस 5. शुरू कर लापता को हटा मैं क्या सोचा की वजह से इस मुद्दे को है: मैं RootViewController viewWillAppear विधि में subviews को हटाने गया था:iOS 5 UINavigationBar को हटाने subviews (छवि subview) कि आईओएस 4 navigationBar पर ठीक काम करता है नेविगेशन पट्टी

for(UIView* view in self.navigationController.navigationBar.subviews) 
    { 
     if ([view isKindOfClass:[UILabel class]]) 
     { 
      [view removeFromSuperview]; 
     } 
     if([view isKindOfClass:[UIImageView class]]) 
     { 
      [view removeFromSuperview]; 
     } 
    } 

मैं ऐसा इसलिए कर रहा था क्योंकि दूसरा दृश्य नियंत्रक जो मैंने नेविगेशन नियंत्रक ऐड की छवि और लेबल पर नेविगेशन बार पर दबाया है जिसे देखने के दौरान मुझे निकालना है। आईओएस 5 में उपरोक्त कोड नेविगेशनबार हटा देता है। आईओएस 4 और आईओएस 5 दोनों का समर्थन करने के लिए इसे करने का सही या सही तरीका कैसे ठीक करें?

उत्तर

6

उन छवियों और यूलाबेल के लिए सेटटैग, फिर उपरोक्त कोड से इसे हटाकर चाल चल रही थी।

for(UIView* view in self.navigationController.navigationBar.subviews) 
{ 
    if(view.tag == 9 || view.tag == 99) 
    { 
     [view removeFromSuperview]; 
    } 
} 
+0

हां, यह तकनीकी रूप से काम करेगा, लेकिन यदि आपका या किसी और को बाद में वापस आने की आवश्यकता है तो आपका कोड काफी कम समझ में आता है। आप प्रभावी ढंग से पढ़ने में सक्षम नहीं होने का जोखिम चलाते हैं और आपका कोड क्या कर रहा है इसका ट्रैक रखें। कम से कम उन टैग स्थिरांक को यह देखने में सहायता करें कि आप क्या हटा रहे हैं। – RPeck

+0

आप नीचे दिए गए कोड [(UILabel *) [self.navigationController.navigationBar viewWithTag: yourViewTag] removeFromSuperview] का उपयोग करके सबव्यू को हटा सकते हैं; – Himanshu

0

आप अपने संबंधित यूआईकिट कक्षाओं के अपने अतिरिक्त दृश्य उप-वर्ग बना सकते हैं और उन विशिष्ट उप-वर्गों के खिलाफ जांच कर सकते हैं। वास्तव में, सबसे स्पष्ट, सबसे पठनीय कोड होने के लिए, आपको कस्टम छवि और लेबल को तैयार करने की अनुमति देने के लिए नेविगेशन नियंत्रक और नेविगेशन बार को उप-वर्ग करना चाहिए ताकि आप पृष्ठभूमि छवि और अग्रभूमि लेबल को शून्य पर सेट कर सकें। इसे एक साथ रखने में थोड़ा समय लगेगा, लेकिन अंतिम परिणाम अधिक विस्तार योग्य होगा।

संबंधित मुद्दे