Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式调用didSelectRow?_Ios_Objective C_Uipickerview - Fatal编程技术网

Ios 以编程方式调用didSelectRow?

Ios 以编程方式调用didSelectRow?,ios,objective-c,uipickerview,Ios,Objective C,Uipickerview,正如标题所说,有没有办法在pickerview中调用didSelectrow?我正在做我的第一个“大”项目(货币转换器),这是一个我似乎无法解决的问题。这是一段取自.m文件的代码: //Toggle reverse on/off - (IBAction)Reverse:(id)sender { reverse = (reverse+1)%2; NSString *tmpstring = string1; string1 = string2; string2 = t

正如标题所说,有没有办法在pickerview中调用didSelectrow?我正在做我的第一个“大”项目(货币转换器),这是一个我似乎无法解决的问题。这是一段取自.m文件的代码:

//Toggle reverse on/off
- (IBAction)Reverse:(id)sender {
    reverse = (reverse+1)%2;
    NSString *tmpstring = string1;
    string1 = string2;
    string2 = tmpstring;

    if (!reverse) {
        [Picker1 selectRow:row2 inComponent:0 animated:YES];
        [Picker1 selectRow:row1 inComponent:1 animated:YES];
        Text1.text = [Datarray objectAtIndex:row2];
    } else {
        [Picker1 selectRow:row1 inComponent:0 animated:YES];
        [Picker1 selectRow:row2 inComponent:1 animated:YES];
          Text1.text = [Datarray objectAtIndex:row1];
    }
    tmpstring = nil;
    [self Editingdidend:self];
    NSLog(@"%d",reverse);
    //[call didSelectRow here]
}

-(void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    XMLparse *parse = [[XMLparse alloc]init];
    if (component == 0) {
    Text1.text = [Datarray objectAtIndex:row];
        string1 = [Datarray objectAtIndex:row];
        row1 = row;
        [parse setHowmuchmoney:[Inputter.text floatValue]];
        [parse setValutanamn1:string1];
        [parse setValutanamn2:string2];
        [parse loadDataFromXML];
        Output.text = [NSString stringWithFormat:@"%.2f", [parse convertionrate]];
    } else {
        string2 = [Datarray objectAtIndex:row];
        row2 = row;
        [parse setHowmuchmoney:[Inputter.text floatValue]];
        [parse setValutanamn1:string1];
        [parse setValutanamn2:string2];
        [parse loadDataFromXML];
        Output.text = [NSString stringWithFormat:@"%.2f", [parse convertionrate]];
    }
}

为什么你认为你需要从你的
Reverse:
方法调用
pickerView:didSelectRow:Incomonent:
?好吧,这很难解释,我甚至都不了解自己。但是,我认为这是因为,否则row1和row2将不会在之后刷新,如果我调用didselctrow程序,有时会出现问题。您应该从
didSelectRow
方法中获取大部分代码,并将其放入新方法中。然后您的
Reverse:
didSelectRow
方法都可以调用这个新方法。yh,但我想调用它的唯一原因是因为我想刷新row1=row和row2=row。我不能从函数之外得到它;Edit发现我可以用相反的方法完成这项工作:row1=[Picker1 SelectedRowUncomponent:0];