繁体   English   中英

如何从标签栏视图控制器取回?

[英]How to get back from tabbar view controller?

我的初始屏幕是HomeViewController ,从HomeViewController移至TabBarViewController 现在,我想回到HomeViewController 我为此使用以下代码:

self.navigationController?.popViewController(animated: true)

但这不起作用。

是的,它不起作用,以及navigationController?.popToRootViewController(animated: true)不起作用,因此您可以从TabBarViewController推送到HomeViewController。

self.navigationController?.pushViewController(vc, animated: false)

如何从Tabbar控制器取回取​​决于您在第一篇文章中如何获得它。

如果将其推入导航堆栈,则需要调用popViewController(animated:) 显然这不是您的情况。

您可以模态呈现它。 然后,您需要dismiss(animated:, completion:)

如果将选项卡控制器设置为窗口的根,则需要使用HomeViewController重置根。 例如

UIApplication.shared.delegate?.window??.rootViewController = HomeViewController()

您应该自定义一个UITabBarViewController

当您要从首页转到TabBarVC时,您推入一个导航,其根为TabBarViewController。 在TabBarViewController上,如果要返回到Home,请调用nagicationVC的popToViewController方法。

例如:

类HomeVC:UIViewController {

@IBAction func goToTabBarVC(_ sender: Any) {
    let tabBar = TabBarVC() 
    let navigation = UINavigationController(rootViewController:  tabBar)
    navigationController?.pushViewController(navigation, animated: true)
} 

}

TabBarVC类:UITabBarController {

@IBAction func backToHome(_ sender: Any) {
    navigationController?.popViewController(animated: true)
} 

}

在应用程序委托文件中,将以下代码放入applicationDidFinishLaunching方法中。

let st = UIStoryboard(name: "Main", bundle: nil)
let homeVC = [st initializeViewControllerWithIdentifier:"HomeVC"]

let navigation = UINavigationController(rootViewController:  homeVC)
self.window??.rootViewController = navigation

要么

您可以直接从情节提要中将“导航”控制器嵌入到主视图控制器中。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM