2014-09-29 2 views
2

나는 UIActivityController를 사용하여 최근 completionHandler가에되지 않습니다 것을 알게하고 iOS8의UIActivityViewController completionHandler 교체

사람의 completeionHandler에게 나쁜 디자인을 사용하고이 변화를 설명 할 수 있습니까? 그리고이 기능을 구현하는 다른 방법이 있습니까?

UIActivityViewController이 닫힌시기를 아는 것이 중요합니다. 이후에 다른 팝업을 표시하고 이전 팝업이 열려있는 동안 새로운 팝업을 여는 아이폰에 넣기를 원하기 때문입니다. activityDidFinish을 호출하기 전에 사용자 정의 액티비티에 타이머를 설정할 수 있다고 가정하고 1 초 후에 팝업을 열어도 안전하지만 실제로는 잘못된 방법입니다.

답변

1

괜찮다 tdevoy에 의해 this 답 :

당신은 단지 새로운 핸들러 UIActivityViewControllerCompletionWithItemsHandler 사용할 필요가 :

typedef void (^UIActivityViewControllerCompletionWithItemsHandler)(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError); 
1

사용자 지정 UIActivity를 사용하는 경우 코드를 UIActivity activityDidFinish에 넣을 수 있습니다.

이 줄의 다른 옵션은 수행하려는 활동의 하위 클래스를 만들고 activityDidFinish 메서드를 재정의하는 것입니다. [super activityDidFinish]을 호출 한 다음 사용자 지정 작업을 수행하십시오.

UIActivity를 건드리지 않고 세 번째 (더 까다 롭습니다) 옵션은 UIActivityViewController의 하위 클래스를 만들고 메서드를 재정의하는 것이지만 작업 수행 여부 또는 단순히 취소 중인지 여부를 결정하는 데 약간의 논리가 필요합니다 활동.

관련 문제