iOS 13.6.1 테스트 디바이스 iPhone8
문의 제목과 동일 하게 현재 iOS에서 UIActivityViewController를 통해 카카오톡에 텍스트를 전송하는 기능을 개발 중인데
대화상대 목록까지는 불러와지며 선택 가능하지만 정작 전송 버튼및 취소와 같은 헤더 레이아웃이 잘려있는 증상이 있어 문의드립니다.
다른 앱에서 동일하게 카카오톡을 통해 텍스트를 전달 시 헤더가 분명 보이는것을 확인했는데
어떤이유에서인지 현재 제 앱의 경우는 첨부 스크린샷과 동일하게 헤더레이아웃이 잘린것처럼 보입니다.
안녕하세요.
사용하는 sdk 버전, 사용한 api 나 메소드명, 그리고 app id 알수 있을까요?
현재 카카오의 sdk는 따로 사용중이지 않으며
let text = "will share Text"
let textToShare = [ text ]
// 액티비티 뷰 컨트롤러 셋업
let activityVC = UIActivityViewController(activityItems: textToShare, applicationActivities: nil)
// UIActivityItemsConfiguration.init(itemProviders: [NSItemProvider])
// 제외하고 싶은 타입을 설정 (optional)
activityVC.completionWithItemsHandler = {(type, completed, items, error) in
UIApplication.shared.delegate?.window??.makeKeyAndVisible()
}
activityVC.title = "초대메시지"
activityVC.excludedActivityTypes = [UIActivity.ActivityType.airDrop]
activityVC.modalPresentationStyle = .custom
activityVC.popoverPresentationController?.sourceView = self.view
present(activityVC, animated: true)
제목과 같이 UIActivityViewController를 사용중입니다.
해당 스크린샷과 같이 UIActivityViewController를 통해 공유가능한 앱을 찾은후 카카오로 공유 기능을 사용했습니다.
아 이것은 카카오톡 개발자님들이 봐주셔야 할듯요.
1개의 좋아요
modalPresentationStyle을 다른 걸로 지정해보시기 바랍니다.
https://developer.apple.com/documentation/uikit/uimodalpresentationstyle
전체를 덮는 거라면 fullScreen을 사용하시면 되겠네요.
1개의 좋아요
기존 modalPresentationStyle .custom 에서 fullScreen을 시도했으나 기존과 동일하게 나옵니다 ㅠ
또한 activityViewController를 modalPresentationStyle을 주어도 앱선택시에 fullScreen으로 동작될것으로 예상되며
activityViewController에서 띄우는 각 앱의 화면을 fullScreen로 띄워야 할듯 한데 아무리 찾아봐도 해당 설정 기능이 안나오네요 ㅠㅠ
말씀하신대로 uiactivityviewcontroller 에서 present 하는 걸 제어하려면 present 자체를 swizzling 해서 처리해야됩니다. present를 swizzling 해서 ios 13이고 modalPresentationStyle이 automatic 인 경우 이를 fullscreen으로 변경하면 됩니다.
1개의 좋아요
답변 감사드립니다.
현재 확인 한 바로는 같은 uiactivityviewcontroller 호출하는 소스로 새 프로젝트를 생성해 테스트해본결과
새 프로젝트에서는 상단바가 추가되는것을 확인하여 현재 본 소스와 새 프로젝트 차이점을 찾아 해당 부분을 수정해야 할 것 같습니다.