---
title: WKNavigationDelegate
framework: webkit
role: symbol
role_heading: Protocol
path: webkit/wknavigationdelegate
---

# WKNavigationDelegate

Methods for accepting or rejecting navigation changes, and for tracking the progress of navigation requests.

## Declaration

```swift
@MainActor protocol WKNavigationDelegate : NSObjectProtocol
```

## Mentioned in

Replacing UIWebView in your app

## Overview

Overview Implement the methods of the WKNavigationDelegate protocol in the object you use to coordinate changes in your web view’s main frame. As the user attempts to navigate web content, the web view coordinates with its navigation delegate to manage any transitions. For example, you might use these methods to restrict navigation from specific links within your content. You might also use them to track the progress of requests, and to respond to errors and authentication challenges.

## Topics

### Allowing or denying navigation requests

- [webView(_:decidePolicyFor:preferences:decisionHandler:)](webkit/wknavigationdelegate/webview(_:decidepolicyfor:preferences:decisionhandler:).md)
- [webView(_:decidePolicyFor:decisionHandler:)](webkit/wknavigationdelegate/webview(_:decidepolicyfor:decisionhandler:)-2ni62.md)
- [WKNavigationActionPolicy](webkit/wknavigationactionpolicy.md)
- [webView(_:decidePolicyFor:decisionHandler:)](webkit/wknavigationdelegate/webview(_:decidepolicyfor:decisionhandler:)-19mn2.md)
- [WKNavigationResponsePolicy](webkit/wknavigationresponsepolicy.md)

### Tracking the load progress of a request

- [webView(_:didStartProvisionalNavigation:)](webkit/wknavigationdelegate/webview(_:didstartprovisionalnavigation:).md)
- [webView(_:didReceiveServerRedirectForProvisionalNavigation:)](webkit/wknavigationdelegate/webview(_:didreceiveserverredirectforprovisionalnavigation:).md)
- [webView(_:didCommit:)](webkit/wknavigationdelegate/webview(_:didcommit:).md)
- [webView(_:didFinish:)](webkit/wknavigationdelegate/webview(_:didfinish:).md)

### Responding to authentication challenges

- [webView(_:didReceive:completionHandler:)](webkit/wknavigationdelegate/webview(_:didreceive:completionhandler:).md)
- [webView(_:authenticationChallenge:shouldAllowDeprecatedTLS:)](webkit/wknavigationdelegate/webview(_:authenticationchallenge:shouldallowdeprecatedtls:).md)

### Responding to navigation errors

- [webView(_:didFail:withError:)](webkit/wknavigationdelegate/webview(_:didfail:witherror:).md)
- [webView(_:didFailProvisionalNavigation:withError:)](webkit/wknavigationdelegate/webview(_:didfailprovisionalnavigation:witherror:).md)
- [webViewWebContentProcessDidTerminate(_:)](webkit/wknavigationdelegate/webviewwebcontentprocessdidterminate(_:).md)

### Handling download progress

- [webView(_:navigationResponse:didBecome:)](webkit/wknavigationdelegate/webview(_:navigationresponse:didbecome:).md)
- [webView(_:navigationAction:didBecome:)](webkit/wknavigationdelegate/webview(_:navigationaction:didbecome:).md)

### Instance Methods

- [webView(_:shouldGoTo:willUseInstantBack:completionHandler:)](webkit/wknavigationdelegate/webview(_:shouldgoto:willuseinstantback:completionhandler:).md)
- [webView(_:willSubmitForm:submissionHandler:)](webkit/wknavigationdelegate/webview(_:willsubmitform:submissionhandler:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Navigation

- [WKBackForwardList](webkit/wkbackforwardlist.md)
- [WKBackForwardListItem](webkit/wkbackforwardlistitem.md)
- [WKNavigation](webkit/wknavigation.md)
- [WKNavigationAction](webkit/wknavigationaction.md)
- [WKNavigationResponse](webkit/wknavigationresponse.md)
