1

私はこのコードを持っています:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    NSDictionary *data = [list1 objectAtIndex:row];
    NSNumber *strt = [data objectForKey:@"ab1"];
    NSNumber *strt2 = [data objectForKey:@"ab1"];
    forlb1 = [NSString stringWithFormat:@"%d", strt.intValue];
    forlb2 = [NSString stringWithFormat:@"%d", strt2.intValue];

    NSDictionary *xt = [list1 objectAtIndex:row];
    NSString *name = [xt objectForKey:@"name"];

    NSDictionary *xx = [list1 objectAtIndex:row];
    NSString *name2 = [xx objectForKey:@"name"];

    switch (component)
    {   
        case 0:
            show1 = name;
            label1.text = forlb1;
            break;

        case 1:
            show2 = name2;
            label2.text = forlb2;
            break;
    }
}

- (IBAction)goView:(id)sender 
{    
    if (label1.text < labe2.tex)
    {
        ViewController1 *first = [[ViewController1 alloc]init];
        first.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        [self presentModalViewController:first animated:YES];
    }
    else
    {
        ViewController3 *third = [[ViewController3 alloc]init];
        third.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        [self presentModalViewController:third animated:YES];
    }
}

私の問題は、label1.text <label2.textの場合、ViewController3を取得できないことです。

ピッカービューのコンポーネント1から選択すると、ラベルの1つに名前が表示され、別のラベル1に番号が表示されます。ピッカービューのコンポーネント2でも同じことが起こりますが、ボタンをタッチする必要がある場合は、 viewcontroller1またはviewcontroller2に移動する必要があります:label1.text <label2.text

お願い助けて。

4

1 に答える 1

0

lessthen演算子label.textを使用して比較するべきではありません。<ラベルの内容に応じて、テキストを数値に変換してチェックするか、文字列をアルファベット順に比較する必要があります。

これは、テキストが整数を表すと仮定して、文字列を数値的に比較する方法です。

if ([label1.text intValue] < [labe2.text intValue]) {
    ....
}

文字列をアルファベット順に比較する方法は次のとおりです。

if ([label1.text compare:labe2.text] ==  NSOrderedAscending) {
    ....
}
于 2012-08-17T17:50:54.390 に答える