【发布时间】: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