2016-06-29 6 views
1

컨트롤러 (뉴스 화면)가 있는데, 사용자가 그것을 떠날 때 감지해야합니다. 나는 사용자가 viewController를 떠날 때 감지합니다.

- (void)viewWillDisappear:(BOOL)animated 

을 시도했지만 사용자 탭 공유 버튼 (소셜 네트워크에 공유 등) 그 방법은 트리거 할 때 문제이지만, 사용자가 공유 한 후, 따라서 그 문제가 해결되지, 뉴스 화면에 아직도있다.

는 또한
-(void)willMoveToParentViewController:(UIViewController *)parent { 

을 시도하지만, 사용자가 처음으로 (내가만을 남겨 감지 할 필요가) 잘못 컨트롤러를 입력 할 때 그것은 또한 트리거합니다.

사용자가 컨트롤러를 떠날 때 어떻게 감지 할 수 있습니까? "공유"팝업 화면에 들어갈 때 어떻게 트리거 할 수 있습니까?

+0

어떻게 나누고 계십니까? 우리가 알 수있는 코드를 넣을 수 있습니까? – iphonic

+0

@iphonic와 공유하는 표준 라이브러리 (fb, vk, twitter, mail 등) –

+0

공유를 클릭하자마자 떠날 수 있다고 생각합니다. UIActivityViewController를 표시하고 완료하면 반환을 처리 할 수 ​​있습니까? – iphonic

답변

1

확인이 당신을 도움이 될 것입니다.

UIActivityViewController *conroller=[[UIActivityViewController alloc] initWithActivityItems:@[@"Hello"] applicationActivities:nil]; 

당신은 당신이

같은 완료에 처리 할 작업을 처리 할 수 ​​있도록 완성 활동이 발표되었음을 알려드립니다 여기

[conroller setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError){ 
     if(!activityError) 
     NSLog(@"Shared"); 
}]; 

완료에 공유 일을 처리 할 수 ​​있습니다

[self presentViewController:conroller animated:YES completion:^{ 
     NSLog(@"Activity Appeared"); //Same as viewWillDisappear 
}]; 

희망이 있습니다.

+0

도움을 주셔서 감사합니다. –

2

이 네 가지 방법은보기 컨트롤러의 모양 콜백에서 표시되거나 해제되거나 자식보기 컨트롤러로 추가되거나 제거되는지 여부를 결정하는 데 사용될 수 있습니다. 예를 들어보기 컨트롤러는 viewWillDisappear : 메서드에서 [(self isBeingDismissed] || [self isMovingFromParentViewController])를 확인하여 자체를 묻는 것으로 해지되었거나 사라져서 사라지는 지 확인할 수 있습니다. 시나리오에 대한

- (BOOL)isBeingPresented NS_AVAILABLE_IOS(5_0); 
- (BOOL)isBeingDismissed NS_AVAILABLE_IOS(5_0); 

- (BOOL)isMovingToParentViewController NS_AVAILABLE_IOS(5_0); 
- (BOOL)isMovingFromParentViewController NS_AVAILABLE_IOS(5_0); 

사용 isMovingFromParentViewController

-(void)viewWillDisappear:(BOOL)animated{ 
     [super viewWillDisappear:animated]; 

     if (self.isMovingFromParentViewController){ 

     } 
    } 
+0

@El Captain v2.0 감사합니다. 코드 블록을 if self.isMovingFromParentViewController) { } –

+0

isMovingFromParentViewController는 뷰 컨트롤러가 컨테이너 뷰 컨트롤러에서 제거 되었기 때문에 사라지는 경우 true를 반환하고 그렇지 않으면 false를 반환합니다. [doc] (https://developer.apple.com/reference/uikit/uiviewcontroller/1621365-ismovingfromparentviewcontroller) –

+0

UIActivityViewController가 다른 방식으로 제공되므로이 방법은 작동하지 않습니다. – iphonic

관련 문제