在创建新条目后返回原始详细信息 viewcontroller viewcontroller 深度 Swift

Returning back to original details viewcontroller after creating new entry two viewcontrollers deep with Swift

我相信(虽然我可能是错的)是一个非常标准的设置,用于在 iOS 中添加新记录 Swift:

如您所见,我们在开头有一个导航控制器,它以 AddAnItemVC(一个 UITableViewController)作为带有 segue 的根控制器。

当有人点击 Project 时,我们转到 SelectProjectViewController,这是另一个 UITableViewController。由于它嵌入在原始的 UINavigationController 中,我们无法通过 xcode IB 直接添加按钮,因此我们通过编程方式在右上角添加一个按钮以添加新项目。如果他们 select 列表中的一个项目,我们将使用 delegate/prototype 将 return 的值 selection 返回到 AddAnItemVC。效果不错。

现在,如果用户 select 在导航栏中添加按钮,我们将执行转场以打开 AddANewProjectVC、另一个 UITableViewController,并以编程方式向导航栏添加一个 SAVE 按钮。这就是我们卡住的地方。

我们希望这样,当用户单击“保存”按钮时,我们会立即跳回到原始的 AddAnItemVC 视图控制器,其中包含新创建的项目 selected(即显示在项目的静态单元格中)。我们不知道该怎么做。我们使用

从 SelectAProjectVC 返回到 AddAnItemVC
 if let navController = self.navigationController {
        navController.popViewControllerAnimated(true)
    }

但是如果我们在这里这样做,我们只会向后移动一个级别到 SelectAProjectVC,而不是原始细节级别。

我们怎么回去?

因为 AddAnItemVC 被设置为导航控制器的根目录。您可以使用

直接移动到它
self.navigationController?.popToRootViewControllerAnimated(true)

您可以在 ViewWillAppear() 方法中加载数据