2012-10-12 156 views
0

我從另一個開發人員那裏拿到一些代碼,我試圖把它放在正確的位置。其中一個問題是:第一個選擇器行選擇更改第二個選擇器行

我有2個選擇器,用選取器填充選定行的文本框。

如果選擇器1(名爲:類型)被選中,那麼該行選擇..say第3行,默認選擇器出現時我的下一個選擇器(名爲:FlueType)上的那一行。

我怎樣才能讓第二選擇器不受第一選擇器行選擇的影響?

我看了看[picker reloadComponent:0];我看過堆棧和谷歌和不能找到任何適合這個問題。

我也嘗試過在ViewDidLoad方法中使用[picker selectRow:0 inComponent:0 animated:NO],希望它能將我所有的採集器設置爲第一行,這正是我所要做的。

道歉代碼的山,我試着它分成方面

 /////////////////////picker action//////////////////////// 

     -(void)flueTypeBtnClicked//:(id)sender 
     {  

    [flueTypeBtn.titleLabel setTextColor:[UIColor blackColor]]; 

currentSelectedIndex = flueTypeBtn.tag; 
[makeTxt resignFirstResponder]; 
[modelTxt resignFirstResponder]; 
[locationTxt resignFirstResponder]; 
[oprPressureMBarTxt resignFirstResponder]; 

[picker setHidden:NO]; 
[picker reloadComponent:0]; 




[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.3]; 
self.ToolsView.frame = CGRectMake(0, 200, 320, 260); 

extern GasCertificateAppViewController *viewController; 
[viewController.view addSubview:self.ToolsView]; 


[UIView commitAnimations]; 
    } 




-(void)typeBtnClicked//:(id)sender 
{ 

[typeBtn.titleLabel setTextColor:[UIColor blackColor]]; 


currentSelectedIndex = typeBtn.tag; 
[makeTxt resignFirstResponder]; 
[modelTxt resignFirstResponder]; 
[locationTxt resignFirstResponder]; 
[oprPressureMBarTxt resignFirstResponder]; 




[picker setHidden:NO]; 
[picker reloadComponent:0]; 

//NSLog(@"In type btn Clicked:"); 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.3]; 
self.ToolsView.frame = CGRectMake(0, 200, 320, 260); 
extern GasCertificateAppViewController *viewController; 
[viewController.view addSubview:self.ToolsView]; 

    [UIView commitAnimations]; 


    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////more code here/////////////////////// 


    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 

if (textField.tag == 1) 
{ 
    [self typeBtnClicked]; 
    return NO; 
} 
else if(textField.tag == 3) 
{ 
    [self flueTypeBtnClicked]; 
    return NO; 
} 

CGPoint offset = CGPointMake(0, textField.frame.origin.y - textField.frame.size.height); 
[self.screenScrollView setContentOffset: offset animated: YES]; 

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.3]; 

self.ToolsView.frame = CGRectMake(0, 200, 320, 260); 
extern GasCertificateAppViewController *viewController; 
[viewController.view addSubview:self.ToolsView]; 

[UIView commitAnimations]; 
    return YES; 
    } 


     ////////////// 

    -(void) fillData 
    { 
extern Survey *survey; 
ApplianceTest *test = [survey.applianceTestArray objectAtIndex:testId]; 

if(test.type != nil) 
    [self.typeTxt setText:test.type]; 
    // [self.typeBtn setTitle:test.type forState:UIControlStateNormal]; 
if(test.make != nil) 
    [self.makeTxt setText:test.make]; 
if(test.model != nil) 
    [self.modelTxt setText:test.model]; 
if(test.location != nil) 
    [self.locationTxt setText:test.location]; 
if(test.flue_type != nil) 
    [self.flueTypeTxt setText:test.flue_type]; 
    //[self.flueTypeBtn setTitle:test.flue_type forState:UIControlStateNormal]; if(test.operating_pressure_mbar_or_heat_input_kwh != nil) 
    [self.oprPressureMBarTxt setText:test.operating_pressure_mbar_or_heat_input_kwh]; 

if([test.safety_device_correct isEqualToString:@"Yes"]) 
    [self.segtCtrl setSelectedSegmentIndex:0]; 
else 
    if([test.safety_device_correct isEqualToString:@"No"]) 
     [self.segtCtrl setSelectedSegmentIndex:1]; 
     else 
      [self.segtCtrl setSelectedSegmentIndex:2]; 


    } 
    -(IBAction)bgTouched:(id)sender 
    {   


CGPoint offset = CGPointMake(0, 0); 
[self.screenScrollView setContentOffset: offset animated: YES];[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.3]; 

self.ToolsView.frame = CGRectMake(0, 500, 320,260); 
//[self.ToolsView removeFromSuperview]; 

//self.view.frame = CGRectMake(0, 0, 320, 372); 

[makeTxt resignFirstResponder]; 
[modelTxt resignFirstResponder]; 
[locationTxt resignFirstResponder]; 
[oprPressureMBarTxt resignFirstResponder]; 


[UIView commitAnimations]; 
} 
/////////////////////////////////////////////////////////////////////////////////////////////////////////// 


    - (void)viewDidLoad { 
    [super viewDidLoad]; 

//segment control selected Index = 2; 



segtCtrl.selectedSegmentIndex = 2; 

navigationTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(130, 0, 200, 25)]; 
navigationTitleLabel.textAlignment = UITextAlignmentCenter; 
navigationTitleLabel.font= [UIFont fontWithName:@"Futura" size:18]; 
navigationTitleLabel.backgroundColor = [UIColor clearColor]; 
navigationTitleLabel.textColor = [UIColor whiteColor]; 
navigationTitleLabel.text = @"Appliance Test 1/3"; 

self.navigationItem.titleView = navigationTitleLabel; 


self.screenScrollView.frame = CGRectMake(0, 0, 320, 370); 
self.screenScrollView.contentSize = CGSizeMake(320, 600 + 200); 
self.screenScrollView.clipsToBounds = YES; 
self.screenScrollView.showsVerticalScrollIndicator = NO; 
[self.view addSubview:self.screenScrollView]; 


testId = [testIdStr intValue]; 
currentSelectedIndex = 0; 

typeArray = [[NSMutableArray alloc] init]; 
[typeArray addObject:@""]; ///change 
[typeArray addObject:@"Boiler"]; 
[typeArray addObject:@"Cooker"]; 
[typeArray addObject:@"Fire"]; 
[typeArray addObject:@"Hob"]; ///change to hob 


currentSelectedIndex = 0; 
flueTypeArray = [[NSMutableArray alloc] init]; 
[flueTypeArray addObject:@""]; //change 
[flueTypeArray addObject:@"OF"]; 
[flueTypeArray addObject:@"RS"]; 
[flueTypeArray addObject:@"FL"]; 



unitArray = [[NSMutableArray alloc] initWithObjects:@"MBar",@"KW/h",nil]; 
//self.navigationItem.title = @"Appliance Test 1/3"; 

//[typeTableView setHidden:YES]; 
//[flueTypeTableView setHidden:YES]; 

[segtCtrl setSelectedSegmentIndex:2]; 

extern Survey *survey; 


    [self fillData]; 
[picker setHidden:YES]; 
self.ToolsView.frame = CGRectMake(0, 500, 320, 260); 

    ///////////////// 

    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
    { 
return 1; 
    } 

    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component 
    { 
if (currentSelectedIndex == 1) 
{ 
    return [typeArray count]; 
} 
else if(currentSelectedIndex == 3) 
{ 
    return [flueTypeArray count]; 
} 
else if(currentSelectedIndex == 7) 
{ 
    return [unitArray count]; 
} 
else 
{ 
    return 1; 
} 
    } 


    - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
    { 
if (currentSelectedIndex == 1) 
{ 
    if ([typeArray count] == 0) 
    { 
     return [NSString stringWithFormat: @"None"]; 

    } 
    else 
    { 
    return [typeArray objectAtIndex:row]; 
    } 
} 
else if(currentSelectedIndex == 3) 
{ 
    if ([flueTypeArray count] == 0) 
    { 
     return [NSString stringWithFormat: @"None"]; 

    } 
else { 


     return [flueTypeArray objectAtIndex:row]; 
    } 
} 
else if(currentSelectedIndex == 7) 
{ 
    if ([unitArray count] == 0) 
    { 
     return [NSString stringWithFormat: @"None"]; 

    } 
    else 
    { 
     return [unitArray objectAtIndex:row]; 
    } 
} 
return @""; 

} 
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
//  [gasSafeNoBtn setTitle:[NSString stringWithFormat:@"%d",[(NSNumber *) [gasSafeNoArray objectAtIndex:row]intValue]] forState:UIControlStateNormal]; 
extern Survey *survey; 
if (currentSelectedIndex==1) 
{ 
    //typeTxt.text = [typeArray objectAtIndex:row]; 
    [typeBtn.titleLabel setTextColor:[UIColor blackColor]]; 
    [typeBtn setTitle:[typeArray objectAtIndex:row] forState:UIControlStateNormal]; 
    typeTxt.text =[typeArray objectAtIndex:row] ; 
} 
else if(currentSelectedIndex == 3) 
{ 
    //flueTypeTxt.text = [flueTypeArray objectAtIndex:row]; 
    [flueTypeBtn.titleLabel setTextColor:[UIColor blackColor]]; 

    [flueTypeBtn setTitle:[flueTypeArray objectAtIndex:row] forState:UIControlStateNormal]; 
    flueTypeTxt.text= [flueTypeArray objectAtIndex:row]; 
} 
else if(currentSelectedIndex == 7) 
{ 
    unitString = [[NSString alloc] initWithString:[unitArray objectAtIndex:row]]; 
// NSLog(@"Unit String : %@", unitString); 
    [unitBtn setTitle:[unitArray objectAtIndex:row] forState:UIControlStateNormal]; 
} 
else { 

} 

} 

- (void)dealloc { 
[unitArray release]; 
[ToolsView release]; 
[toolBar release]; 
[nextBtn release]; 
[prevBtn release]; 
[doneBtn release]; 
[picker release]; 
    [super dealloc]; 

    } 


    @end 

回答

0

好的分類....添加

[picker selectRow:0 inComponent:0 animated:NO];

給按鈕動作方法呈現選取器

相關問題