우리가 개발을 할 때 때로는 범용 디바이스 형식으로 개발을 진행하곤 한다.
주의할 점이 몇 가지 있으나 그중에 하나가 바로 UIAlertController 사용 시에
iPhone 버전과 iPad 버전을 구분해서 코딩을 진행 하야 한다.
그렇지 않으면 Crush가 발생한다.
일단 처음으로는 어떤 디바이스 구분자를 삽입하여 아이폰과 아이패드 부분을 나눠준다.
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
// 아이폰 부분
}else{
//아이패드 부분
}
그 후 아이폰 부분은 UIAlertController ,addAction ,presentViewController 등등을 사용하여 구현하면 된다.
아이패드 부분은 아이폰 부분과 다른 점은
- alert.popoverPresentationController.permittedArrowDirections = 0;
- alert.popoverPresentationController.sourceRect = rect;
- alert.popoverPresentationController.sourceView = navi.view;
1. permittedArrowDirections 노출되는 팝업뷰의 화살표 방향 지정
UIPopoverArrowDirectionUp = 1UL << 0 없음, UIPopoverArrowDirectionDown = 1UL << 1 아래
UIPopoverArrowDirectionLeft = 1UL << 2 왼쪽, UIPopoverArrowDirectionRight = 1UL << 3 오른쪽,
2. sourceRect 노출되는 팝업뷰의 위치 지정
3. sourceView 노출되는 팝업뷰 해당 뷰 지정
3가지 부분을 완료해야 아이패드에서 alert 팝업을 강제 종료 없이 구현할 수 있다.
'iOS, Swift 개발' 카테고리의 다른 글
App Store 심사 제출시 이슈 요청 사항 Missing API declaration (1) | 2024.04.05 |
---|---|
스위프트(Swift) UIAlertController 구현 (0) | 2024.03.29 |
구글 AdMob 과 Ad Manager 차이점, 개발 그리고 수익 결과 (0) | 2024.03.25 |
iOS 애플 디벨로퍼 프로그램 맴버쉽(Apple Developer Program Membership) 갱신 (0) | 2024.03.19 |
AvPlayer 재생 시간과 소수점 변환 구하기 (0) | 2024.03.15 |