我的初始屏幕为HomeViewController
,我从HomeViewController
移至TabBarViewController
。现在,我想回到HomeViewController
。我为此使用以下代码:
self.navigationController?.popViewController(animated: true)
但是它不起作用。
答案 0 :(得分:0)
是的,它不起作用,而且navigationController?.popToRootViewController(animated: true)
也不起作用,因此您可以从TabBarViewController推送到HomeViewController。
self.navigationController?.pushViewController(vc, animated: false)
答案 1 :(得分:0)
如何从标签栏控制器取回信息取决于您在第一篇文章中的使用方式。
如果将其推入导航堆栈,则需要调用popViewController(animated:)
。显然这不是您的情况。
您可以模态呈现它。然后,您需要dismiss(animated:, completion:)
。
如果将标签栏控制器设置为窗口的根目录,则需要使用HomeViewController
重设根目录。例如
UIApplication.shared.delegate?.window??.rootViewController = HomeViewController()
答案 2 :(得分:0)
您应该自定义UITabBarViewController
当您要从主页转到TabBarVC时,您推入一个导航,其根为TabBarViewController。 在TabBarViewController上,如果要返回首页,请调用nagicationVC的popToViewController方法。
例如:
Class HomeVC:UIViewController {
.catch
}
TabBarVC类:UITabBarController {
@IBAction func goToTabBarVC(_ sender: Any) {
let tabBar = TabBarVC()
let navigation = UINavigationController(rootViewController: tabBar)
navigationController?.pushViewController(navigation, animated: true)
}
}
答案 3 :(得分:0)
在应用程序委托文件中,将以下代码放入applicationDidFinishLaunching方法中。
let st = UIStoryboard(name: "Main", bundle: nil)
let homeVC = [st initializeViewControllerWithIdentifier:"HomeVC"]
let navigation = UINavigationController(rootViewController: homeVC)
self.window??.rootViewController = navigation
或
您可以直接从情节提要中将Navigation控制器嵌入到主视图控制器中。
谢谢