如何在 TabBarController 中重置 UIViewController

How to reset UIViewController inside TabBarController

我见过几个与我的问题类似的问题,但 none 的答案到目前为止对我有用。

我有一个连接到 3 个 NavigationController 的 TabBarController。每个 NavigationController 都有一个自定义 ViewController。请参阅下面的屏幕截图。 这些 ViewController 之一有一个 TableView。我有一个取消按钮,它通过在 IBAction 中选择另一个 selectedIndex 来退出此视图,它位于此 ViewController 的自定义 class 中,每个单元格中都有文本字段,用户可以在其中输入文本。 但是,我希望这个取消按钮可以重置 ViewController,以便 TableView 和控制器中的所有其他内容都将重置为原始状态。我该怎么做?

@IBAction func cancel(_ sender: Any) {
        let index = (self.tabBarController as! MainTabBarController).previouslySelectedIndex!
        animateToTab(tabBarController: self.tabBarController!, to: self.tabBarController!.viewControllers![index])
        self.tabBarController?.selectedIndex = index
    }

我看到的答案说要在我的 NavigationController 上使用 "popToRootViewController" 或 "popViewController",但其中 none 有效,可能是因为只有一个 ViewController每个 NavigationController.

您可以尝试(在将情节提要标识符设置为该导航的 rootVC 之后)

let vc = storyboard!.instantiateViewController(withIdentifier:"CancelVC") as! CancelVC  
self.navigationController?.setViewControllers([vc],animated:true)

重新启动当前 VC