我正在使用Kukushi的SideMenuSwift。
我用下面的代码创建了一个SideMenuController:
extension DeviceScanViewController {
static func instantiate() -> UIViewController {
let homeViewController = UIStoryboard(name: "DeviceScan", bundle: nil).instantiateInitialViewController()!.embedInNavigationController()
let menuVC = MenuViewController.instantiate()
return SideMenuController(contentViewController: homeViewController, menuViewController: menuVC)
}
}
导航栏标题显示应用程序的名称,如下图所示(“Appname”):
我想将导航标题更改为其他标题,但我不知道如何更改。
我尝试了以下方法:
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Test123"
self.navigationController?.navigationBar.topItem?.title = "Test456"
self.navigationItem.title = "Test789"
sideMenuController?.title = "Test123"
sideMenuController?.navigationController?.navigationBar.topItem?.title = "Test456"
sideMenuController?.navigationItem.title = "Test789"
}
这些方法都不起作用。导航标题仍然显示应用名称。使用SideMenuSwift时,我如何更改导航栏标题?
1条答案
按热度按时间taor4pac1#
我发现导航栏的标题是在UIViewController的一个名为reachabilityChanged的扩展函数中设置的。每当应用程序的连接状态更新时,都会自动调用这个函数。因此,每次加载一些视图时,它都会用“Appname”或“Appname(offline)"覆盖导航栏标题。因此,它与kukushi的SideMenu无关。
我设法解决了这个问题,方法是将以下代码添加到视图控制器中,并设置一个需要将title设置为“Appname”或“Appname(offline)"的标记:
并且对于第二视图控制器也是:
然后我将函数reachabilityChanged修改为:
现在,如果我将self.title设置为不同视图控制器中的另一个文本,它就可以工作了。