나는 인터뷰에서이 질문을 여러 번 물어 보았습니다. 적절한 답을 얻지 못한 곳마다 검색되었습니다. 그래서 마침내이 질문을 게시합니다.iOS 응용 프로그램이 둘 이상의 창을 가질 수 있습니까?
답변
이 과정을 거칠 수도 있습니다.
예, 여러 개의 창을 가질 수 있습니다. 핵심 창은 사용자 입력을받는 창입니다.
- 그것은 또 다른 UIWindow를 추가 전혀 문제가되지 않습니다 : 나는 조금 주위에 연주와이 주제에 대한 정보를 얻으려고 다른 사람에 대한 몇 가지 메모를 작성하려 롭의 대답을 시작으로
. 과 makeKeyAndVisible을 하나만 만들면됩니다. 끝난.
- 다른 창 이 보이도록 제거한 다음 더 이상 필요하지 않은 창을 놓으십시오.
- "키"인 창은 모든 키보드 입력을받습니다.
- UIWindow는 모든 항목, 심지어 모달, 팝업 등을 포함합니다. Brilliant!
- UIWindow는 항상 암시 적으로 세로로 있습니다. 그것은 회전하지 않습니다.
- 컨트롤러를 새 윈도우의 루트 컨트롤러에 추가하고 핸들을 회전시켜야합니다.
- (기본 창과 비슷 함) 창의 레벨에 따라 은 "높음"으로 표시됩니다. 모든 것을 커버하도록 UIWindowLevelStatusBar로 설정하십시오.
- 숨김 속성을 NO로 설정하십시오. A 2nd UIWindow를 사용하면 화면 상단에 모든 것을 띄우는 뷰를 가져올 수 있습니다. UIPopoverController에 그냥 더미 컨트롤러를 만들지 않고.
- Popover 컨트롤러가 없지만 iPhone과 비슷한 것을 모방하려는 iPhone에 특히 유용 할 수 있습니다.
- 그리고 네, 그것은 해결 물론, 내 문제 : 응용 프로그램이 활성화 사임 경우, 은 현재 응용 프로그램의 현재 내용의 스크린 샷을 복용 아이폰 OS를 방지하기 위해 표시됩니다 어떤 이상 커버 창을 추가 할 수 있습니다.
더 많은 점을 추가해 주셔서 감사합니다. –
물론 여러 개의 창을 가질 수 있습니다. 한 번에 하나씩 표시되는 것은 keyWindow
입니다. 어레이 또는 무엇이든간에 여러 창을 저장할 수 있으며 표시 할 때 keyWindow
으로 만들 수 있습니다.
그리고 예, @Mannopson이 제안한 설명서를 읽으십시오. 매우 유용합니다.
감사합니다. @Mannopson. 그게 정말 도움이. –
일반적으로 하나의 응용 프로그램에는 하나의 UIWindow 만 있으면되지만 한 응용 프로그램에서 여러 UIWindow를 사용해야하는 시나리오가있을 수 있습니다.
예를 들어, 시스템 AlertView의 맨 위에보기를 표시하거나 기본 키보드로 표시 할 수 있습니다.
UIWindows는 표시 순서가 .windowLevel 속성에 의해 제어되는 특수 UIView입니다.
새 UIWindow를 뷰의 하위보기로 추가 할 필요가 없습니다. 단순히 새 UIWindow를 만들고 setHidden : NO 창을 호출하거나 makeKeyAndVisible 창을 레벨에 따라 호출 할 수 있습니다.
- UIWindowLevelNormal
- UIWindowLevelStatusBar
- UIWindowLevelAlert
확인이 아웃 :
정의 된 세 가지 기본 창을 열거 수준이 있습니다! https://developer.apple.com/documentation/uikit/uiwindow – Mannopson
예, 둘 이상의 창을 가질 수 있습니다. 하지만 한 번에 _key_ 일 수 있습니다. 여러 창을 사용하는 계획은 무엇입니까? – holex