2012-10-23 29 views
0

在viewDidLoad中,我這段代碼:SelectRow在ViewPicker

//這裏總是顯示正確的字符串值aCapital一,二,三,四

的NSLog(@「首都% @「,self.aCapital);

if (!self.aCapital) { 
    self.aCapital = @"One"; 
    } else { 

if (self.aCapital = @"One") { 
    [self.Select selectRow:0 inComponent:0 animated:NO]; 
    NSLog(@"One"); 
    return; 
} 

if (self.aCapital = @"Two") { 
    [self.Select selectRow:1 inComponent:0 animated:NO]; 
    NSLog(@"Two"); 
    return; 
} 

if (self.aCapital = @"Three") { 
    [self.Select selectRow:2 inComponent:0 animated:NO]; 
    NSLog(@"Three"); 
    return; 
} 

if (self.aCapital = @"Four") { 
    [self.Select selectRow:3 inComponent:0 animated:NO]; 
    NSLog(@"Four"); 
    return; 
} 

    } 

但是選擇PickerView不顯示正確的selectRow。 如果刪除所有的代碼和在viewDidLoad中我簡單地插入

[self.Select selectRow:2 inComponent:0動畫:NO];

顯示正確的三行(並且對於一個和兩個值是相同的)。 而不是selectRow:3不顯示四個而是一個!

回答

0

你實際上分配一個不比較的值。你應該輸入:

if (self.aCapital == @"One") { 
    [self.Select selectRow:0 inComponent:0 animated:NO]; 
    NSLog(@"One"); 
    return; 
} 
+0

由於兩者比較值。現在值傳遞正常,但選擇ViewPicker繼續不顯示正確的行,爲什麼? – Fabrizio

1

此行讓if (self.aCapital = @"One")你分配if語句中值的問題。這個表達總是評估true

你需要使用

if (self.aCapital == @"One") 

if ([self.aCapital isEqualToString: @"One"]) 
+0

謝謝。現在值傳遞正常,但選擇ViewPicker繼續不顯示正確的行,爲什麼? – Fabrizio

+0

如果條件改變了? –

+0

是的,當然。我應該添加另一個[self.Select selectRow :(在這裏傳遞正確的行?)inComponent:0 animated:NO];在條件結束時(不這麼認爲)。 – Fabrizio

相關問題