ios - 为什么 DetailViewController 会弹出到带有选项卡栏和导航 Controller 的第一个 DetailViewController?

标签 ios swift uinavigationcontroller uitabbarcontroller

Green arrow button click action pass data to <code>MyCartVC</code>, Page goes like Red arrows way. I want to go with Blue arrows way.首先,我使用 Storyboard。我的 ViewController 层次结构如下 NavigationController -> SplashScreen -> LoginScreen -> MainTabBarController -> MainNavigationController -> MainViewController -> DetailViewController

当我单击 DetailViewController 页面上的按钮时,不会返回到 MainViewController。它将转到LoginScreen

我在 DetailViewControlleraddToBasket 操作中尝试了此代码。

@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/

相关文章:

ios - 无法使用 CryptoSwift 解密 base64String

ios - "deselectRow"没有 't animate if using "popViewController”

ios - 向后导航时相机进给卡住 - ios,objective-c

android - Unity3D 初学者和游戏设计

ios - 保存 Int Array CoreData Swift 3 的最干净方法

ios - iOS 7 上消息编辑器的奇怪行为

ios - 如何做循环和复杂的导航?

ios - 以编程方式在两个 subview 之间创建约束

ios - 插页式广告后更改场景 (SpriteKit)

ios - 模型更改后重建 CoreData,无需版本控制