覆盖ios后退按钮

时间:2016-04-24 09:09:01

标签: ios swift

我有一个显示网页webView的应用。网络包含一个包含大量子页面的主页面。当我在主页面上时,我希望导航“返回”按钮保持返回上一个视图控制器的默认行为。但是,当网页位于子页面上时,我希望导航“返回”按钮将网络带到主网页。

因此,当用户按下后退按钮时,我需要抓住,如果他在网页子页面上,则将他带到网页主页并阻止webView关闭。我想我可以使用viewWillDisappear()捕获后退按钮,但是如何阻止视图关闭?

2 个答案:

答案 0 :(得分:0)

查看此帖:

Execute action when back bar button of UINavigationController is pressed

这样的事情应该在您的视图控制器代码中执行:

double

请注意,如果您需要“后退”图像或UIBarButtonItem(customView :),则可能必须使用UIBarButtonItem(image:,style:,target:,action :)。有关详细信息,请参阅此问题和答案:https://stackoverflow.com/a/36180934/892990

答案 1 :(得分:0)

与KickimusButticus的回答类似:

如果你想使用故事板等更容易地做到这一点,你可以将你的后退按钮连接到IBAction,如下所示:

@IBAction func back() {

}

并且对用户是否在webview的子页面中进行内部测试。如果是,你可以搞乱webview。如果它们位于主页上,您只需使用后退按钮即可转到主视图控制器,或使用self.dismissViewControllerAnimated(true, completion: nil)关闭该视图控制器。