티스토리 뷰

PickerView를 textField를 통해 사용하려 시도했습니다.

하지만 외부로부터 textField에 입력을 완전히 막으면서 PickerView를 사용하는 방법은 찾기 힘들었습니다.

textField에 내용을 입력시키지 않기위해 user Interaction Enable을 false하게 되면 이벤트가 발생하지 않아 PickerView를 띄울 수 없었고

그렇다고 그냥 사용하면 PickerView로 인해 키보드는 나오지 않지만 붙여넣기 등으로 값을 변경 가능했습니다.

 

 

그래서 생각한 방법이 textField 대신 UIButton을 통해,  외부의 입력을 막으면서 PickerView를 사용하는 것입니다.

의아해 하실 수 도 있지만 방법은 이러합니다.

 

모든 UI 요소는 storyboard로 진행했습니다.

1. StoryBoard에 ViewController를 하나 더 생성합니다. 이를 VC2라고 하고 PickerView의 값을 표시할 ViewContorller를 VC1라고 하겠습니다.

2. 생성한 ViewController에 존재하는 view를 view1 이라하고 view1 위에 view를 하나 더 생성합니다.

생성한 view를 view2라 하겠습니다.

3. view1의 Background Color를 Clear Color로 설정합니다.

4. view2 위에 picker를 생성하고 picker의 크기와 view2의 크기를 동일시 해줍니다.(저는 view1의 bottom을 기준으로 layout을 설정했습니다.)

5. Picker의 결과 값을 표시할 VC1에 Button을 하나 생성합니다.

6. Button을 클릭하면 VC2를 present 해줍니다. 이때 VC2의 

modalPresentationStyle는 .overCurrentContext, modalTransitionStyle는 .crossDissolve

로 설정해 줍니다.

7. 버튼을 누르게 되면 VC2가 present되지만 PickerView만 나타난 것처럼 보입니다.

8. PickerView의 값을 선택하고 그 값을 VC2 -> VC1 으로 전달하여 VC1의 Button의 text영역에 나타내 줍니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함