2012-04-08 50 views
0

我在設備上面臨這個問題,即分配選取器的選定行值需要太多時間才能在模擬器上正常工作時在標籤上顯示。在設備上分配UIPickerView值問題

下面是代碼:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row 
     inComponent:(NSInteger)component 
{ 
    if (pickerView == rewardsName) { 

    NSString *selectedReward = [self.rewards objectAtIndex:row]; 

    if ([reward1.text length]==0){ 
     //set label 1 

     reward1.text = selectedReward; 
    } 
    if ([reward2.text length]==0){ 
     //set label 2 

     reward2.text = selectedReward; 
    } 
    if([reward3.text length]==0){ 
     //set label 3. 

     reward3.text = selectedReward; 
    } 
    } 

    else if(pickerView == selectNamazPicker){ 

     aNumberString = [self.namazArray objectAtIndex:row]; 

     NSLog(@"aNumberString:: %@", aNumberString); 
    } 
} 

誰能告訴我什麼可以是問題......我無法找到一個...

**

EDITED: 
ISSUE RESOLVED: 

**

For others who would face this issue. 

I don't know whether it was creating the problem or not. But I did make these changes to my code. 

In my .h file, previously I was just defining properties of UILabels (reward1, reward2 etc) with IBOutlet and not ivars. But then I defined ivars as IBOutlet UILabel reward1; etc and eliminated IBOutlet from properties then it started working fine. 

Now the problem has resolved. 
+0

什麼是'rewardsName'?請注意,您正在比較兩個對象的地址:'if(pickerView == rewardsName)'... – giorashc 2012-04-08 14:48:15

+0

實際上,我在單個視圖上使用了兩個pickerview。 rewardsName是UIPickerview – 2012-04-08 15:15:23

+0

如果'reward1','reward2'和'reward3'屬於'UILabel'類,那麼讀取和改變它們的文本應該沒什麼效果。您可以嘗試:(1)註釋掉整個塊以確認問題消失;(2)在代碼中的其他位置更改UILabel文本以確認問題出現在那裏? – Dondragmer 2012-04-10 11:15:43

回答

0

對於其他人會面臨這個問題。

我不知道它是否造成問題。但我確實對我的代碼進行了這些更改。

在我的.h文件中,以前我只是用IBOutlet而不是ivars定義UILabels(reward1,reward2等)的屬性。但後來我將ivars定義爲IBOutlet UILabel reward1;等等,並從屬性中消除了IBOutlet,然後它開始正常工作。

現在問題已經解決。