UIPickerView의 데이터 소스는 UIPickerViewDataSource 프로토콜을 구현하는 클래스이어야한다. 배열을 말하는 당신은 본 적이 오류를 ...
pickerView.datasource=someArray;
생성
있는 NSArray 이후
– numberOfComponentsInPickerView:
– pickerView:numberOfRowsInComponent:
사용 프로토콜을 구현하지 않습니다 피커 뷰의 채우기는 이러한 두 가지 방법으로 이루어집니다 프로토콜을 구현하지 않습니다.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1; //or whatever
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [self.tab_T count]; // assuming just one component
}
:
@interface MyControllerClass: UIViewController <UIPickerViewDataSource,UIPickerViewDelegate>
은 다음과 같을 것이다 프로토콜의 메소드를 구현해야합니다
당신이해야 할 첫 번째 일은 컨트롤러는 프로토콜과 같이 구현을 선언하는 것입니다
실제로 구성 요소를 채우려면 UIPickerViewDelegate 메서드가 필요합니다. (나는 그것이 데이터 소스는 데이터를 알고 있지만 어떤 이유가 거꾸로을 제공해야한다는 것 알고있다.)
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [self.tab_T objectAtIndex:row]; //assuming one component
}
여기서 핵심 아이디어는 데이터 소스 및 위임 방법을 구현하는 객체가 역할을한다는 것입니다 피커와 실제로 데이터를 보유하고있는 데이터 구조 사이의 인터페이스. 이 경우에는 단순한 배열이지만 Core Data, SQL 또는 URL에서 다운로드 한 내용이 될 수 있습니다.
pickerview는 결코 데이터 구조를 전혀 다루지 않습니다. 항상 데이터 소스를 구현하고 상호 작용하는 메소드를 위임하는 것은 객체입니다.
아침 TechZen, Ok, 답장을 보내 주셔서 감사합니다. 피커의 동작이 더 잘 이해됩니다. 안녕, 월루 – wallou