簡體   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