簡體   English   中英

Swift - 帶有NavigationBar后退按鈕的UIWebview后退按鈕

[英]Swift - UIWebview back button with NavigationBar Back Button

目前我使用我的uiwebview上的按鈕返回用戶搜索的每個網頁,並且它的工作效果很好。 但是,無論如何使用導航欄后退按鈕返回以前的網頁,當沒有更多的頁面返回時,然后打開以前的視圖控制器?

繼續使用的代碼是返回,它只是連接到UIButton。

// Back button events
func onBackButton_Clicked(sender: UIButton)
{
    if(webview.canGoBack)
    {
        webview.goBack()
    }
}

任何幫助都會很棒。

添加到您的代碼中,您可以添加一個在沒有更多Web歷史記錄時運行的其他內容並彈出視圖控制器,這將返回到上一個視圖控制器(如果您在導航控制器中查看控制器):

if(webview.canGoBack) {
    //Go back in webview history
    webview.goBack()
} else {
    //Pop view controller to preview view controller
    self.navigationController?.popViewControllerAnimated(true)
}

此外,如果要刪除默認后退按鈕並使用自定義按鈕,請在ViewDidLoad中添加以下代碼:

self.navigationItem.backBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.Plain, target: self, action:  "onBackButton_Clicked:")

並改變上面的方法:

onBackButton_Clicked(sender: UIButton)

至:

onBackButton_Clicked(sender: UIBarButtonItem)

我建議重載后退按鈕功能並檢查歷史記錄。

override func viewDidLoad {
        super.viewDidLoad()
        self.navigationItem.hidesBackButton = true
        let newBackButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Bordered, target: self, action: "back:")
        self.navigationItem.leftBarButtonItem = newBackButton;
    }

    func back(sender: UIBarButtonItem) {
        if(webview.canGoBack) {
             webview.goBack()
        } else {
             self.navigationController.popViewController(animated:true)
        }
    }

您需要使用BackBarButton來1.導航回以前的網頁2.從第一個加載的網頁返回到上一個控制器。 目前,后一個要求似乎滿足於NavigationBar上的BackButton。 你要做的是添加一個自定義BackButton

override func viewDidLoad()
{
    super.viewDidLoad()
    leftButton = UIButton(type: UIButtonType.Custom)
    leftButton.frame = CGRectMake(0, 0, 36, 36)
    leftButton.clipsToBounds = true
    leftButton.setImage(UIImage(named: "yourBackButton.png"), forState: .Normal) // add custom image
    leftButton.addTarget(self, action: "onBackButton_Clicked:", forControlEvents: UIControlEvents.TouchUpInside)
    let leftBarButton = UIBarButtonItem()
    leftBarButton.customView = leftButton
    self.navigationItem.leftBarButtonItem = leftBarButton
}

func onBackButton_Clicked(sender: UIButton)
{
    if(webview.canGoBack) {
        webview.goBack()
    }
    else {
        self.navigationController.popViewController(animated: true)
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM