2012-01-24 42 views
0

這將是困難的沒有貼我的整個代碼,但我希望我失去了一些東西簡單。基本上,當有一個網絡鏈接(來自NSDictionary),我想顯示一個UIbutton,如果沒有,該按鈕應該是不可見的。所有的if/else語句引用一個UIButton的阿爾法工作不

首先,我設置的UIButton到無形之中- (void)viewDidLoad

其後是一個方法- (void)animationDidEndOnAnswer其中,如果有一個環節按鈕應該會出現。如果我只是把button.alpha = 1;然後顯示在正確的時間,但我想要做的是,如果沒有網絡鏈接也不會顯示。

這裏是我目前在該方法的代碼:

- (void)animationDidEndOnAnswer 
    { 
      if ([[questions questionOnScreen] objectForKey:@"link"] == @"") { 
       leesmeerButton.alpha = 0; 
      } 

      else { 
      leesmeerButton.alpha = 1; 
      } 

    NSLog(@"link is %@", [[questions questionOnScreen] objectForKey:@"link"]); 

} 

在日誌中,當沒有聯繫我什麼也看不到(甚至沒有空格)。當有,我看到正確的網絡鏈接...我也試過if ([[questions questionOnScreen] objectForKey:@"link"] == nil),但也沒有工作。

任何幫助表示讚賞!謝謝!!

+1

爲什麼在'NSString'上使用'=='?你應該使用'-isEqual:'或'-isEqualToString:'。或者,在這種特殊情況下,同時處理'@「」'和'nil',你應該只問了'-length'並比較0 –

+0

感謝凱文,我使用==因爲我是新來的這個!您的解決方案很好地工作,謝謝!我會牢記未來。 – sixstatesaway

回答

1

問題就在這條線

if ([[questions questionOnScreen] objectForKey:@"link"] == @"") 

取而代之的是使用

if ([[[questions questionOnScreen] objectForKey:@"link"] isEqualToString:@""] || [[questions questionOnScreen] objectForKey:@"link"] != nil) 
1

而不是使用alpha你應該使用hidden屬性。就像那樣:

 if ([[[questions questionOnScreen] objectForKey:@"link"]isEqualToString:@""]) 
      leesmeerButton.hidden = YES; 
     else 
      leesmeerButton.hidden = NO; 

或者切換YES和NO。

希望它有幫助