【问题标题】:How to show tabBarController when presenting new ViewController when button is pressed按下按钮时显示新的 ViewController 时如何显示 tabBarController
【发布时间】:2017-11-11 12:19:36
【问题描述】:

我有一个activityfeedVC。如果用户单击 tableViewCell,则会显示 activityVC。在这个 VC 中,我有一个“返回”按钮。单击此按钮时,我想返回上一个视图控制器。我能够做到这一点,但我无法显示 tabBarController。我正在使用完成处理程序,但出了点问题。希望你能帮忙。

import UIKit

class activityVC: UIViewController {

    @IBAction func backBtnWasPressed(_ sender: Any) {

        // Navigates back
        let feedVC = storyboard?.instantiateViewController(withIdentifier: "feedVC")

        func completionHandler() {
            // show the tabBarController - NOT WORKING
            feedVC?.tabBarController?.tabBar.isHidden = false
            print("tabBarController shown")
        }

        present(feedVC!, animated: false, completion: completionHandler)



    }



    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }



}

我想我应该使用 UINavigationBar 而不是我的客户导航...也许这更容易,即使我没有很多需要此功能的视图...

【问题讨论】:

  • 当您设置值feedVC?.tabBarController?.tabBar.isHidden = false时,如果其中任何一个为nil,您是否调试过
  • 您的故事板中还有"feedVC" tabBarController 或活动视图控制器。如果情节提要中可用,则需要链接到 TabBarController。另一种方法是关闭当前视图控制器,而不是在点击后退按钮时加载另一个视图控制器(如果它以模态方式呈现)
  • 它没有以模态方式呈现,所以不起作用。 tabBarController 是在 CustomTabBarController 类中以编程方式创建的。你是说我应该展示 CustomTabBarController 而不是展示 UIViewController?
  • 是的!否则 TabBarController 可能是 nil 可能是你没有看到它的原因。

标签: ios swift uiviewcontroller uitabbarcontroller completionhandler


【解决方案1】:

您是否将 activityVC 推送到视图控制器堆栈?如果是这样,您可以在用户点击后退按钮时简单地弹出 activityVC。

class activityVC: UIViewController {

   @IBAction func backBtnWasPressed(_ sender: Any) {
      self.navigationController?.popViewController(animated: false)
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多