본문 바로가기
iOS, Swift 개발

아이폰과 아이패드 Alert 리스트 노출시 주의점(Object-C)

by Nin J 2024. 3. 28.

우리가 개발을 할 때 때로는 범용 디바이스 형식으로 개발을 진행하곤 한다.

주의할 점이 몇 가지 있으나 그중에 하나가 바로 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 팝업을 강제 종료 없이 구현할 수 있다.