The underscore means that parameter name should be omitted when calling the function.
So this function:
func webViewDidFinishLoad(_ playerWebView: UIWebView) { /* ... */ }
should be called as:
webViewDidFinishLoad(aWebView)
and this one:
func webViewDidFinishLoad(playerWebView: UIWebView) { /* ... */ }
as:
webViewDidFinishLoad(playerWebView: aWebView)
In Swift, those are seen as two different functions and that's why you don't see the function being called when you change its signature.
More information can be found here, under "Function Argument Labels and Parameter Names":
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html#//apple_ref/doc/uid/TP40014097-CH10-ID166