2011-08-25 12 views
6
- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    CGRect viewRect = CGRectMake(250, 100, 30, 30); 
    as = [[UIImageView alloc] initWithFrame:viewRect]; 
    as.backgroundColor=[UIColor clearColor]; 
    UIImage *img = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"check" ofType:@"png"]]; 
    [as setImage:img]; 
    [self.view addSubview:as]; 
    BOOL test= [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"]; 
    NSLog(@"%@", (test ? @"YES" : @"NO")); 
    if(test == YES) 
     { 
      as.hidden=NO; 
     } 
    else 
     { 
      as.hidden=YES; 
     } 
} 

test परिणाम YES लेकिन imageView आदेश .hidden नहीं सुनता या हर समय अपडेट जब viewDidAppear यह है.अगर जब मैं एप्लिकेशन को पुनः प्रारंभ नहीं है और यह करने के बाद उस हाँ मैं पूरी तरह से दिखाने के लिए लेकिन उसके बाद बारी गायब हो जाते हैं मैं हमेशा वहां कभी नहीं जाता हूं, मैं इसे छुपा नहीं सकता। कोई विचार है कि यह प्रतिक्रिया क्यों नहीं कर रहा है?UIimageview को छिपाने/दिखाने के लिए कैसे?

उत्तर

11

समस्या यह है कि जब भी आपका विचार प्रकट होता है तो समस्या यह है कि आप हर बार UIImageView बनाते हैं। आप के रूप में एक बार UIImageView बनाने के लिए:

- (void)loadView { 
    [super loadView]; 
    CGRect viewRect = CGRectMake(250, 100, 30, 30); 
    as = [[UIImageView alloc] initWithFrame:viewRect]; 
    as.backgroundColor = [UIColor clearColor]; 
    UIImage *img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"check" ofType:@"png"]]; 
    as.image = img; 
    [self.view addSubview:as]; 
    [as release]; 
} 

और उसके बाद में इसे छिपाने दिखाने/- viewDidAppear विधि:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    BOOL test = [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"]; 
    NSLog(@"%@", (test ? @"YES" : @"NO")); 
    if(test == YES) { 
     as.hidden = NO; 
    } 
    else { 
     as.hidden = YES; 
    } 
}