UIPageViewController 更改导航栏后退按钮标题
Posted
技术标签:
【中文标题】UIPageViewController 更改导航栏后退按钮标题【英文标题】:UIPageViewController change navigation bar back button title 【发布时间】:2019-07-10 05:10:16 【问题描述】:这是我的完整代码。 In PageViewController navigation not working
在这里,当我单击页面视图控制器的视图控制器中的按钮时,它将导航到下一个视图(最终视图控制器)。现在我想更改导航栏后退按钮。
当我单击 ViewController 中的按钮时,请参见上图 [View controller will load in PageViewController],它将导航到 FinalViewController
我的导航栏标题ViewController代码:
@IBAction func btn(_ sender: Any)
print("ViewController one")
print(variable)
let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "FVC")
let backItem = UIBarButtonItem()
backItem.title = "Final VC"
// self.navigationItem.backBarButtonItem = backItem
(UIApplication.shared.keyWindow?.rootViewController as? UINavigationController)?.self.navigationBar.backItem?.backBarButtonItem = backItem
(UIApplication.shared.keyWindow?.rootViewController as? UINavigationController)?.pushViewController(storyboard!, animated: true)
但是这段代码不起作用
【问题讨论】:
FinalController
也是PageViewController
的一部分吗?
@PGDev,不,这是单独的视图控制器
FinalController 是独立的视图控制器
【参考方案1】:
后退按钮属于前一个视图控制器,而不是当前显示在屏幕上的那个。 你可以使用委托或segue 见this
【讨论】:
我在 PageViewController 的 ViewController 中编写代码,因为我正在单击 PageViewController 的 ViewController 中的按钮,现在它导航到 FinalViewController。那是单独的 ViewController 。 正如我所说,从您的单独视图控制器到您的页面视图控制器的视图控制器创建一个委托方法,然后单击更新您的后退按钮【参考方案2】:这个答案很好用...
let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "FVC")
let backButton = UIBarButtonItem()
backButton.title = "name"
(UIApplication.shared.keyWindow?.rootViewController as? UINavigationController)?.self.navigationBar.topItem?.backBarButtonItem = backButton
(UIApplication.shared.keyWindow?.rootViewController as? UINavigationController)?.pushViewController(storyboard!, animated: true)
【讨论】:
以上是关于UIPageViewController 更改导航栏后退按钮标题的主要内容,如果未能解决你的问题,请参考以下文章
使用我的视图控制器 swift 4 中的按钮使用 UIPageViewController 更改页面
如何在uipageviewcontroller swift中转换时隐藏导航栏
UIPageViewController使用Scroll过渡样式导航到错误的页面