Ios 以编程方式调用didSelectRow?
正如标题所说,有没有办法在pickerview中调用didSelectrow?我正在做我的第一个“大”项目(货币转换器),这是一个我似乎无法解决的问题。这是一段取自.m文件的代码: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
//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];