如何解雇FBWebDialogs
如何以编程方式解除FBWebDialogs – 我已经看过所有文档和堆栈溢出问题,似乎没有办法做到这一点? 那可不可以?
所以我发现了一种hacky方式,这个代码将以编程方式触发关闭按钮TouchUpInside,从而关闭对话框,就像有人手动按下关闭按钮一样 – 它通过循环浏览应用程序视图中的最后一个窗口hiearachy然后试图找到FBDialog的关键按钮 – 它可以在我的测试中工作,但可能不适用于所有人,这里是代码,但真的Facebook应该添加一个API调用来在他们的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; } } }
只需使用[self dismissModalViewControllerAnimated:YES];
它对我有用!
- 如何获得默认的单元格分隔符颜色? 另外,如何设置每个单元的分隔符颜色?
- Swift 3 Alamofire 4使用参数上传图像数组
- UserNotification未显示(iOS 10)
- 如何在AppDelegate中执行Segue?
- 如何在iOS(AVFoundation或其他第三方库)中使用HLS时间平移function,如Android中的ExoPlayer?
- iCloud的无处不在的容器不清理应用程序删除?
- XCodeunit testing:读取testing作用域包时出错
- 如何衡量OpenGL ES的真正的FPS性能?
- WebCore :: UserGestureIndicator :: processingUserGesture中的EXC_BAD_ACCESS(SIGSEGV)