2011-03-28 9 views
1

nib 파일에서 테이블 뷰를 구현하는 뷰 컨트롤러가 있고 뷰 아웃렛이 인터페이스 작성기의 테이블 뷰에 직접 연결되어 있습니다.테이블 뷰 위에 UIPicker를 표시하려면 어떻게합니까?

내가하려고하는 것은 UIDatePicker를 화면 아래쪽에서 슬라이드하여 사용자가 선택하고 다시 슬라이드 할 수 있도록하는 것입니다.

픽커를 화면에 밀어 넣었지만 내 문제는 이걸 서브 뷰로 추가해야하므로 [self.view addSubview:pickerContainer]; 피커가 테이블보기에 추가되고 시도 할 때마다 발생합니다. 값을 변경하려면 전체 피커가 테이블과 함께 위아래로 슬라이드합니다.

DatePicker를 테이블보기 위에 표시하려면 어떻게해야합니까?

답변

1

모덜로 표현해야합니다.

[pickerContainer setModalPresentationStyle:UIModalPresentationCurrentContext]; 
[self presentModalViewController:pickerContainer animated:YES]; 

그리고 호출 할 때이 작업을 수행 이는 완료/선택/등 버튼을 넣어 :

[self dismissModalViewControllerAnimated:YES]; 

편집 : 다른 옵션은 테이블 뷰와 또 다른 숨겨진 모두 부모 UIViewController을 가지고 전망. (테이블 뷰의 상위 계층) 화면 하단 떨어져 당신의 숨겨진 뷰의 위치를 ​​컨트롤이 비활성화 시작 있는지 확인 한 다음 전화 :

[UIView animateWithDuration:1.0 /* set number of seconds it takes to slide here */ 
animations:^ 
{ 
    [pickerContainer setFrame:/*the position you want it to slide in to*/]; 
} 
completion:^(BOOL finished) 
{ 
    [pickerContainer.picker setEnabled:YES]; // only enabled once the animation is done 
    [pickerContainer.doneButton setEnabled:YES]; // same for the button to close the view 
}]; 

을 사용자가 날짜를 선택 완료 지시 할 때, setFrame:을 사용하여 뷰의 원래 위치로 다시 애니메이션을 적용하여 슬라이드 아웃하고 컨트롤을 비활성화하십시오.

+0

전체 화면이 표시됩니까? 차라리 그걸 내 시야의 바닥을 덮도록 해줄거야. – cgossain

+0

Ah. 그런 다음 모달이 당신을 위해 작동하지 않습니다. – darvids0n

+0

괜찮습니다. 귀하의 답변에 감사드립니다. – cgossain

0

iOS 3.2 이후 UITextFieldinputView 속성을 UIPickerView으로 설정할 수 있습니다. 그러면 키보드가 inputView에 적용되는 것으로 바뀌며이 텍스트 필드가 firstResponder가되면이보기가 표시됩니다.

관련 문제