我有一个正在使用SideMenu的侧面菜单。可以从ViewController1和ViewController 2调用侧面菜单。我希望能够:
什么是最好的方法?当我尝试在MenuViewController的tabBarController?.selectedIndex = 1
方法中使用didSelectRowAt
时,由于tabBar为nil
,因此无法正常工作。我也找到了这个答案:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.dismiss(animated: true) {
let topVC = self.topMostController()
let tabBar = self.storyboard!.instantiateViewController(withIdentifier: "tabBarController") as! UITabBarController
tabBar.selectedIndex = indexPath.row
topVC.present(tabBar, animated: false, completion: nil)
}
}
func topMostController() -> UIViewController {
var topController: UIViewController = UIApplication.shared.keyWindow!.rootViewController!
while (topController.presentedViewController != nil) {
topController = topController.presentedViewController!
}
return topController
}
这有点用,但我认为在这种情况下不正确。