webViewDidFinishLoad nicht feuern genannt, arbeiten
(Swift, iOS8, Xcode6, iPhone/iPad)
webViewDidFinishLoad
ist nicht genannt wird, wird nicht gefeuert, und funktioniert nicht.
Ja, ich habe das mit view-controller als delegate. Ich STRG-mousedowned auf die UIWebView, gezogen bis auf den kleinen gelben Kreis, die der view-controller und veröffentlicht. Ein rechts-Klick auf die UIWebView-Objekt zeigt, dass die Delegierten festgelegt ist.
Ja, das habe ich umsetzen UIWebViewDelegate
in meiner Klasse Erklärung, etwa so:
class Paragraph: UIViewController, UIWebViewDelegate {
Ja, ich hab Xcode neu starten und testen, sowohl auf dem simulator und einem aktuellen iPhone 4S.
Die Anfrage sieht wie folgt aus:
@IBOutlet var paragraph : UIWebView = nil
var r = NSBundle.mainBundle().pathForResource("cheddar", ofType: "htm")
var u = NSURL(fileURLWithPath: r)
paragraph.loadRequest(NSURLRequest(URL: u))
Die callback-Funktion sieht wie folgt aus:
func webViewDidFinishLoad() {
println("webViewDidFinishLoad")
}
Method does not override any method from its superclass
- blöde Frage, aber hast du
paragraph.delegate = self
dort vor derparagraph.loadRequest(…)
nennen? - Ich steckte es in dort (obwohl ich nicht verstehe, warum es benötigt, wenn ich das WLAN der UIWebView delegieren, um die mit view controller im storyboard), aber
webViewDidFinishLoad
ist noch nicht aufgerufen. - Danke @Jiaaro, dies ist es, was mir fehlte!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich es. Der Rückruf war, fehlt ein parameter. Für die Nachwelt:
Hinweis: die
webView: UIWebView!
parameterIn diesem Fall, vielleicht sogar wichtiger, ist die Art, wie ich den Fehler gefunden. Ich schuf eine völlig neue view-controller, und setzte Sie wieder zusammen, sorgfältig prüfen, bei jedem Schritt, um sicherzustellen, dass ich nichts vermissen.
Wenn die Intellisense-popup zeigte die Funktion mit dem parameter, sah ich meinen Fehler.
HINWEIS: In Swift 2.2, die UIWebViewDelegate-Protokoll legt eine unterschiedliche optionalität:
webView: UIWebView
.webView: UIWebView!
erscheint eine Warnung.