主要原因是因为这句代码造成循环引用
[self.webView.configuration.userContentController addScriptMessageHandler:self name:@"popvc"];
1 找到一种方法通过把scriptMessageHandler转交给一个新类处理,但是相对下面的方法来说代码太多,就不作记录了。
2 还有一种更好的方法就是在控制器pop出栈之前用removeScriptMessageHandlerForName移除掉addScriptMessageHandler
[self.contentWKWebView.configuration.userContentController removeScriptMessageHandlerForName:@"popvc"];
需要注意的是,我这里pop出栈成功后遇到了crash,导致这次crash的原因是强引用了scrollview,代理释放不掉,所以会报错,所以
self.webView.scrollView.delegate=nil;
这样就好了
网友评论