2014-09-20 4 views
6

내 스토리 보드보기에 UIDatePicker가 헤더 파일의 IBOutlet에 연결되어 있습니다. 구현 파일에서 iOS의 textField에 inputView로 UIDatePicker 추가하기

나는 피커 몇 가지 속성을 설정 한 다음 내 텍스트 필드에 할당 :

[self.txtEndDate setInputView:self.picker]; 

을이 아이폰 OS 7에서 잘 작동했지만, 아이폰 OS 8 그것은 나에게 다음과 같은 오류를주고 :

Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller:<UICompatibilityInputViewController: 0x7c2d8800> should have parent view controller:<InserimentoDurata: 0x7aec2b10> but requested parent is:<UIInputWindowController: 0x7b92b400>' 

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

답변

6

애플의 개발자 기술 지원에서 이메일을받은 후, 그가 UIDatePicker (또는 사용자 정의 키보드를 추가 할 것 내가 이해 한 것)을 viewController에 추가하면 뷰에 더 이상 추가 할 필요가 없지만 제목 표시 줄에 추가 한 다음 IBOutlet에 연결합니다.

iPhone 5 시뮬레이터에서 작동하지 않아도 (다른 모든 것들은 괜찮습니다) 나에게는 열심히 노력하고 있습니다.

같은 문제가있는 다른 사람들에게 도움이되기를 바랍니다.

당신은보기 당신은 어떤 부모 뷰에 속하지 않는 inputView 또는 inputAccessoryView에 할당 할 수 있도록해야한다 :

2

해결 방법은 UIPickerView 코드로 작성 (스토리 보드에서 제거)하고 텍스트 필드의 inputView에 할당하고 필요할 때마다 (참조를 유지하는 대신) 코드를 검색하는 것입니다. 기본적으로,이 의미 :

UIPickerView* picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 300, 320, 168)]; 
[picker setDataSource: self]; 
[picker setDelegate: self]; 
picker.showsSelectionIndicator = YES; 
self.textField.inputView = picker; 

가 나중에 필요하면 사용 :

UIPickerView* pickerView = (UIPickerView*) self.datePartySizeTextField.inputView; 
[pickerView selectRow:1 inComponent:0 animated:NO]; 
+0

이 링크에서 상세를 참조 텍스트 필드가 첫 번째 응답자가되면 날짜 선택 도구가 나타나지 않습니다. 나는 왜 그런지 이해하지 못한다. – Aleph72

+0

그래, 더 이상 작동하지 않는 것으로 판명되었습니다. 그것은 여기에 설명 된 것과 같은 문제입니다 : http://stackoverflow.com/questions/24366437/add-uipickerview-in-uiactionsheet-from-ios-8-not-working – verybadalloc

+0

이것은 절대적으로 효과가 있습니다! 나는이 대답을 찾을 때까지 아무 것도 할 수 없었습니다! 나는 당신의 대답의 후반 부분을 구현하지 않았다. 오히려 나는 (ivar 대신) picker 속성을 만들어 필요할 때 참조했다. 여기 잘 설명 된 코드 예제가 있습니다. 나는 이것이 누군가에게 많은 시간과 두통을 줄 수 있기를 바랍니다. https://stackoverflow.com/a/46047257/3634990 – jungledev

1

UIDatePicker는 슈퍼 볼

문제의 아이해서는 안됩니다. 아마도 ViewController 내부의 xib에서 이러한 뷰를 만들면 기본적으로 슈퍼 뷰의 하위 뷰가됩니다.

해결 팁 :

보기위한 방법 removeFromSuperview를 사용하면 inputView에 할당 할 또는 inputAccessoryView

내가 이런 식으로하려고 노력

Error when adding input view to textfield iOS 8