공유 확장에 대한 사용자 지정보기 컨트롤러를 만들려고했습니다.제시된보기 컨트롤러에서 extensionContext에 액세스
MainInterface.storyboard
에 설정된 초기보기 컨트롤러 위에 다른보기 컨트롤러를 제시하면 혼란스러운 상황이 발생합니다. 이 프리뷰 컨트롤러는 네비게이션 컨트롤러에 내장되어 있습니다 (루트 컨트롤러입니다).
(lldb) po [self presentingViewController]
<_UIViewServiceViewControllerOperator: 0x7a978000>
(lldb) po [[self presentingViewController] extensionContext]
nil
presentingViewController
에 체크를했다. presentingViewController에서 presentViewController로 전달하여extensionContext
에 액세스 할 수 있습니다.
하지만이 동작이 조금 이상하다는 것을 알았습니다. 앱 확장은 한 수준의보기 컨트롤러 계층에서만 액세스하도록 설계 되었습니까?
그래, 이것이 확장 컨텍스트를 전달하는 가장 확실한 방법이라고 생각했습니다. SDK의 extensionContext 속성의 동작에 대해 묻고있었습니다. –
필자가 말할 수있는 한 (지금까지이 패턴을 두 번 사용했다.) 'extensionContext'에 대한 참조를 전달하면 비정상적인 동작이 발생하지 않는다. 마지막으로 할 일은'completeRequestReturningItems :'를 호출하는 것입니다. 그러면 확장 문맥을 해제 할 것이고 그 이후에 확장 기능 내에서 호출 된 것은 아무것도하지 않을 것입니다. –