tags:

views:

66

answers:

2

Hi!
I'm currently working on a single View with two pickerViews.
I've found something like :

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component
{
if([thePickerView isEqual:pickerView ]){ 
    return [arrayNo count];
}
else if([thePickerView isEqual:pickerView2]){       
    return [arrayRootNote count];
}

else{
    return 0;
}

}  
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
 if([thePickerView isEqual:pickerView])
 { 
   return [arrayNo objectAtIndex:row];
}
else if([thePickerView isEqual:pickerView2]){       
    return [arrayRootNote objectAtIndex:row];
}

else{
    return [arrayRootNote objectAtIndex:row];
}

 NSLog(@"I am a called method"); 
}  

What I want is to change the title of each picker (populated by the two NSMutableArrays). The problem is that the two pickers are showing the "ArrayNo" of the pickerView.

I've found with the debugger (and the NSLog) that the method titleForRow is not called at all.
Any idea? Thanks in advance

Séraphin

A: 

did u set delegate/data source?

GameBit
Thanks for the fast reply! Everything is connected with IB. The pickerView is on pickerView and the pickerView2 is on pickerView2! I also did pickerView.delegate = self for both
Séraphin Hochart
Problem solved! I did a mistake in the viewForRow, I forgot that I had a custom label!
Séraphin Hochart
A: 

Problem Solved :
viewForRow, I needed to change the custom label I did :

- (UIView *)pickerView:(UIPickerView *)thePickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{

 CGRect rect = CGRectMake(0, 0, 188.25, 70.4);
 UILabel *label = [[UILabel alloc]initWithFrame:rect];
CGAffineTransform rotate = CGAffineTransformMakeRotation(3.14/2);
rotate = CGAffineTransformScale(rotate, 0.22, 1.7);

[label setTransform:rotate];
//label.text = [arrayNo objectAtIndex:row];           THAT was the error.

if([thePickerView isEqual:pickerView])                THAT is the solution.
{ 
 label.text = [arrayNo objectAtIndex:row];
   }
else if([thePickerView isEqual:pickerView2]){       
 label.text = [arrayRootNote objectAtIndex:row];
}

label.font = [UIFont fontWithName:@"Georgia" size:50];
label.textAlignment = UITextAlignmentCenter;
label.numberOfLines = 2;
label.lineBreakMode = UILineBreakModeWordWrap;
label.backgroundColor = [UIColor clearColor];
label.clipsToBounds = YES;
return label ;
}
Séraphin Hochart