首先,我使用 Storyboard。我的 ViewController 层次结构如下 NavigationController -> SplashScreen -> LoginScreen -> MainTabBarController -> MainNavigationController -> MainViewController -> DetailViewController
。
当我单击 DetailViewController
页面上的按钮时,不会返回到 MainViewController
。它将转到LoginScreen
。
我在 DetailViewController
的 addToBasket
操作中尝试了此代码。
@IBAction func addBasket(_ sender: Any) {
SingletonCart.sharedFood.food.append(food!)
let mainView = self.storyboard?.instantiateViewController(withIdentifier: "FoodOrder") as! MainViewController
let appDelegate = UIApplication.shared.delegate as! AppDelegate
self.navigationController?.popViewController(animated: true)
dismiss(animated: true)
}
这是我的 loginButton
代码,用于将 MyTabBarController
作为 rootViewController。
@IBAction func loginButton(_ sender: Any) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "MainTabBarController")
self.window?.rootViewController = viewController
}
最佳答案
在您的方法中,RootViewController 是登录屏幕的导航 Controller ,因此会出现此问题。
您的方法应如下所示:
A) 导航 Controller -> 启动画面 -> 登录屏幕
B) MainTabBarController -> MainNavigationController -> MainViewController -> DetailViewController
当用户登录时,您应该将 window.rootViewController 替换为 B) MainTabBarController
关于ios - 为什么 DetailViewController 会弹出到带有选项卡栏和导航 Controller 的第一个 DetailViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55951530/