2012-11-20 65 views
4

我編寫了一個UILabel並觸發了一個按鈕,我想隱藏相同的標籤。這是我的代碼:創建並隱藏UILabel

UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 320, 100)]; 
nameLabel.text = @"TEXT"; 
nameLabel.backgroundColor = [UIColor greenColor]; 
nameLabel.numberOfLines = 5; 
nameLabel.font = [UIFont boldSystemFontOfSize:12]; 
[self.view addSubview:nameLabel]; 

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Hide" style:UIBarButtonItemStyleBordered target:self action:@selector(back)];  

- (IBAction)back{ 

    self.navigationItem.rightBarButtonItem=nil; 

    [nameLabel setHidden: YES]; not working 
    nameLabel.hidden = YES;  not working 
} 

我錯過了什麼嗎?

回答

2

這也是另一種方法做同樣的

UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 320, 100)]; 
nameLabel.text = @"TEXT"; 
nameLabel.tag = 1001; 
nameLabel.backgroundColor = [UIColor greenColor]; 
nameLabel.numberOfLines = 5; 
nameLabel.font = [UIFont boldSystemFontOfSize:12]; 
[self.view addSubview:nameLabel]; 

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Hide" style:UIBarButtonItemStyleBordered target:self action:@selector(back)];  

- (IBAction)back{ 

    self.navigationItem.rightBarButtonItem=nil; 
    UILabel *tempLabel = (UILabel *)[self.view viewWithTag:1001]; 
    [tempLabel setHidden: YES]; 
    tempLabel.hidden = YES;  
} 
+0

謝謝you..I我編程很新。你能解釋一下我在做什麼? nameLabel.tag = 1001;非常感謝你 – Mitch1972

+0

這條線給這個標籤標籤。標籤是視圖中物品的標識。您可以通過他們的標籤號訪問項目。 –

1

很難知道這樣會連編譯,因爲你展示創建nameLabel代碼使得本地的任何方法在不在。試着做nameLabel的屬性和使用self.nameLabel只要你引用它,無論是創建它或觸摸其屬性。

2

爲了使按鈕可以從其他方法訪問,您需要將其分配給實例變量(無論是直接還是通過屬性),而不是將其分配給局部變量。申報財產的正確方法是

@property(nonatomic, strong) UILabel *nameLabel; 

然後你就可以分配到後來使用

self.nameLabel = [[UILabel alloc] init...]; 

,你可以說

self.nameLabel.hidden = YES; 

,它應該工作。