필자는 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
picker 뷰에서 선택한 행에 관계없이 항상 0을 반환하는지 확인하기 위해 selectedRow (IBAction에서) 로깅을 시도 했습니까? 내가 게시해야하는 코드에 아무것도 표시되지 않아서 여전히 로컬 선언 오류가 발생하고 있습니까? – rdelmar
로컬 선언 오류가 발생하지 않았습니다. 로깅을 시도하고 다시보고합니다. – JSA986
인스턴스 변수 오류로 인해 문제가 발생했습니다. 수락 해 주셔서 감사합니다 답변을 수락 – JSA986