1

내 스토리 보드에 UIPickerView가 있습니다. 의 UIViewController는 인터페이스 선언 뷰로드에UIPickerView pickerView : titleForRow : rowforComponent 메서드가 호출되지 않았습니다.

@interface ContactDetail : UIViewController <ABPeoplePickerNavigationControllerDelegate, UIPickerViewDataSource, UIPickerViewDelegate,UIAlertViewDelegate, UITextFieldDelegate> 

를 설정했습니다 포함, pickerview 대표단은

pickerView_RelationshipType.dataSource=self; 
pickerView_RelationshipType.delegate = self; 
pickerView_RelationshipType.showsSelectionIndicator = YES; 

모든 UIPickerView 데이터 소스 및 위임 방법

그 다음 그 2

pickerView:titleForRow:rowforComponent 
and 
pickerView:viewForRow:forComponent:reusingView 

제외하고 트리거 설정 문제 없다면

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
    - (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component 
    - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component 
+0

iBhavin 및 JAL 모두에게 감사드립니다. 나는 내 dataSource가 coreData에서 nil을 반환하고 있다는 것을 깨달았다. 문제가 – Add080bbA

+0

으로 해결되면 내 대답에 동의 한 것으로 표시해주세요. – JAL

답변

4

무엇이 numberOfComponentsInPickerView에 있습니까?

numberOfRows이 0이면 대리자 메서드는 호출되지 않습니다. 선택기는 표시 할 행이 없다고 생각하면 행의 제목을 묻지 않습니다.

2

데이터 소스 배열이 할당되고 초기화되었는지 확인하십시오. 데이터 소스와 위임을 설정하고 프로토콜을 준수하면서 모든 것이 올바르게 연결될 때이 문제가 발생했지만 객체를 추가하기 전에 데이터 소스 배열을 초기화하는 것을 잊었습니다. 내 코드는 numberOfComponentsInPickerViewnumberOfRowsInComponent이 아니지만 titleForRow이 아닌 이유를 알아 냈습니다. 데이터 소스가 nil을 리턴하지 않는지 확인하십시오.

어리석은 가장자리 케이스의 종류, 그러나 나는 누군가가 동일한 문제점으로 달린 경우에 나의 응답을 추가 할 것이라고 생각했다.