当前位置: 动力学知识库 > 问答 > 编程问答 >

ios - How to dismiss FBWebDialogs

问题描述:

How can I dismiss an FBWebDialogs programmatically - I have seen through all the documentation and stack overflow questions, and there seems to be no way to do this? That can't be?

网友答案:

So I found a kind of hacky way to do it, this code will programmatically trigger the close button TouchUpInside thus closing the dialog as if someone had manually pressed the close button - it works by looping through the last window in the app's view hiearachy and then trying to locate the FBDialog's closebutton - it works in my test, but might not work for everyone, here's the code, but really facebook should add an API call to do it in their SDK.

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;
        }
    }
}
网友答案:

Just use [self dismissModalViewControllerAnimated:YES]; it worked well for me!

分享给朋友:
您可能感兴趣的文章:
随机阅读: