2012-07-29 7 views
0

필자는 6 시간 동안 ID가 마침내 깨졌을 것이라고 생각했지만 필자보기에서 객체를 선택하는 방법을 배우려하고 있습니다. 작동하지만, NSArray의 첫 번째 항목 만 텍스트 상자에 표시 할 수 있습니다.피커 뷰는 텍스트 상자의 NSArray에서 첫 번째 객체 만 선택합니다.

Select은 내 피커이고, arrstatus은 NSArray, 내 텍스트 상자는 text1입니다. IBAction를 아래 : 코드의

NSInteger selectedRow = [select selectedRowInComponent:0]; 
text1.text = [arrStatus objectAtIndex:selectedRow]; 
    [text1 resignFirstResponder]; 

나머지 : 또한

.H

@interface pick5 : UIViewController <UIPickerViewDataSource,  UIPickerViewDelegate,UITextFieldDelegate> 

{ 

UIPickerView *select; 

NSArray *arrStatus; 


} 

하는 .m

UIPickerView *select = [[UIPickerView alloc] initWithFrame:CGRectZero]; 
select.delegate = self; 
select.dataSource = self; 
[select setShowsSelectionIndicator:YES]; 
text1.inputView = select; 

arrStatus = [[NSArray alloc] initWithObjects:@"bs88", @"bs60898", @"Memphis",  @"California", @"Seattle",@"London",@"Paris", nil]; 
} 
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
//One column 
    return 1; 
} 

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
//set number of rows 
return arrStatus.count; 
    } 

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
//set item per row 
return [arrStatus objectAtIndex:row]; 













[super viewDidLoad]; 
// Do any additional setup after loading the view. 
} 

- (void)viewDidUnload 
{ 
[self setText1:nil]; 
[self setResign:nil]; 
[self setText2:nil]; 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation 
{ 
return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 





- (IBAction)resign:(id)sender { 


NSInteger selectedRow = [select selectedRowInComponent:0]; 
text1.text = [arrStatus objectAtIndex: selectedRow]; 
[text1 resignFirstResponder]; 
} 
@end 

메신저 내 값을 얻기 위해 버튼을 사용하여

노란색 경고 삼각형을 얻는 중 s local decalration of "select" hides instance variable

+0

picker 뷰에서 선택한 행에 관계없이 항상 0을 반환하는지 확인하기 위해 selectedRow (IBAction에서) 로깅을 시도 했습니까? 내가 게시해야하는 코드에 아무것도 표시되지 않아서 여전히 로컬 선언 오류가 발생하고 있습니까? – rdelmar

+0

로컬 선언 오류가 발생하지 않았습니다. 로깅을 시도하고 다시보고합니다. – JSA986

+0

인스턴스 변수 오류로 인해 문제가 발생했습니다. 수락 해 주셔서 감사합니다 답변을 수락 – JSA986

답변

1

황색 경고 메시지는 .m 파일에서 다음 코드 행을 변경하십시오.

UIPickerView *select = [[UIPickerView alloc] initWithFrame:CGRectZero]; 

아래 위에서 대체 :

select = [[UIPickerView alloc] initWithFrame:CGRectZero]; 

이미 선언했기 때문에 uipicker이 * .H 파일을 선택합니다.

+0

귀하의 권리는 경고를 없애줍니다. 플러스 하나 당신을 위해 :-) – JSA986

+0

그게 또 다른 문제를 정렬! 조언 해 주셔서 감사합니다. – JSA986

관련 문제