近期处理了一例iOS8上出现的Crash。从友盟获得的错误信息为:UIPopoverPresentationController should have a non-nil sourceView or barButtonItem set before the presentation occurs.


但代码中没有任何对这个类的引用,也没有发现任何间接对该类的调用。最终在StackOverflow找到答案。


简单说来是iOS8.0-8.2版本的UIWebView对<select>标签的支持有问题,多次点击会出现崩溃。

暂时先简单规避该问题,加上如下代码后本地测试未再出现崩溃。

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion{
    if (viewControllerToPresent.popoverPresentationController && !viewControllerToPresent.popoverPresentationController.sourceView) {
        return;
    }

    [super presentViewController:viewControllerToPresent animated:flag completion:completion];}

附上StackOverflow问题链接:http://stackoverflow.com/questions/25908729/ios8-ipad-uiwebview-crashes-while-displaying-popover-when-user-taps-drop-down-li