2014-02-12 1 views
1

어떻게 프로그래밍 방식으로 FBWebDialogs를 닫을 수 있습니까? 모든 설명서 및 스택 오버플로 문제를 확인했으며이를 수행 할 방법이없는 것 같습니다. 그럴 수 없습니까?FBWebDialogs를 해제하는 방법

답변

2

그래서 나는 일종의 해킹 방법을 찾았습니다.이 코드는 프로그래밍 방식으로 닫기 버튼을 TouchUpInside 트리거하여 누군가가 수동으로 닫기 버튼을 눌렀을 때처럼 대화 상자를 닫았습니다. 앱의 마지막 창을 반복하면서 작동합니다. hiearachy를보고 FBDialog의 닫기 버튼을 찾으려고합니다. 내 테스트에서 작동하지만 모든 사용자에게 작동하지 않을 수도 있습니다. 코드는 있지만 실제로 페이스 북은 SDK에서 API 호출을 추가해야합니다.

UIWindow *window = [[UIApplication sharedApplication] keyWindow]; 

UIView *fbDialogWrapper = [window.subviews lastObject]; 
NSLog(@"Class: %@", [[fbDialogWrapper.subviews firstObject] class]); 
if ([[fbDialogWrapper.subviews firstObject] isKindOfClass:NSClassFromString(@"FBDialog")]) { 
    for (UIView *view in ((UIView *)[fbDialogWrapper.subviews firstObject]).subviews) { 
     if ([view isKindOfClass:[UIButton class]]) { 
      UIButton *closeButton = (UIButton *)view; 
      [closeButton sendActionsForControlEvents:UIControlEventTouchUpInside]; 
      NSLog(@"Trigger facebook close"); 
      break; 
     } 
    } 
} 
2

그냥 [self dismissModalViewControllerAnimated:YES];을 사용해보세요.

관련 문제