2010-08-16 10 views
7

मैं इस तरह के दृश्य बनाने हूँ:टैग के आधार पर UIView सबव्यू हटा दें?

UILabel *qty = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 20)]; 
qty.backgroundColor = [UIColor whiteColor]; 
qty.text =[NSString stringWithFormat:@" Qty: %@", currentQty]; 
qty.alpha = 0.5; 
[qty setTag:999]; 
[self.view addSubview:qty]; 
[qty release]; 

यह इस दृश्य नियंत्रक में कई बार हो सकता है तो इससे पहले कि मैं इस तरह एक नया दृश्य बनाने के मैं किसी भी है कि इस टैग के साथ मौजूद हो सकता है निकालना चाहते हैं, मैं कोशिश कर रहा हूँ इस:

UIView *removeView = [self.view viewWithTag:999]; 
[removeView removeFromSuperview]; 

यह किसी कारण से काम नहीं कर रहा, किसी को भी मेरी समस्या यहाँ देख?

मुझे लगता है कि मैं सभी विचारों के माध्यम से लूप कर सकता हूं और टैग की जांच कर सकता हूं लेकिन इसके बजाय एक और सुरुचिपूर्ण और सीधा समाधान होगा।

उत्तर

25

क्या यह मुद्दा है कि आप संभवतः कई लोगों के एक दृश्य को हटा रहे हैं? इस प्रयास करें:

UIView *removeView; 
while((removeView = [self.view viewWithTag:999]) != nil) { 
    [removeView removeFromSuperview]; 
} 

वहाँ कि बनाया रही है/टैग किया/हटा दिया केवल एक ही दृश्य है, तो आप भी सिर्फ एक संपत्ति जोड़ने, उस दृश्य को ट्रैक करने की सोच सकते हैं और लेखन:

[self.subView removeFromSuperview]; 
self.subView = qty; 
+1

अच्छा, एक तरह काम करता है चैंप - धन्यवाद! – Slee

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