表格单元的segue在选项卡和导航视图控制器中

问题描述:

我刚刚开始学习Xcode和swift语言。为了让我自己熟悉它们,我试图用我迄今为止学到的东西来构建一个简单的应用程序。 1表格单元的segue在选项卡和导航视图控制器中

该屏幕截图显示了我想实现的功能。 VC1和VC2都是导航+选项卡VC。当用户点击VC1导航栏上的“预设”按钮时,屏幕将切换到具有不同预设值表的VC2。我所做的就是创建一个从“预设”按钮到VC2的动作顺序(显示)。迄今为止都很好。

这是我想要做的,但无法想出办法:在VC2的表格上,当用户点击任意一行时,他将被带回到VC1,并且所选行中的值正被插入到VC1的文本字段中。

我试图做的是从表单元格创建一个动作segue(显示)到VC1。但通过这样做,VC1和VC2上的导航栏和标签栏已消失2

是我正在尝试实现的吗?如果是的话,我做错了什么?

我倾向于使用故事板与IBAction为返回到上一个视图控制器,如

@IBAction func userDidSelectTableCell() { 
    self.navigationController?.popViewController(animated: true) 
} 

但在你的情况我觉得你一退卷后赛格瑞,我没有用一个,但你可以在以下链接https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/阅读更多关于他们的信息。 希望有帮助

为了您的目的,您需要使用unwind segue。为了达到这个目的,你首先需要在你的VC2类中声明一个存储所选行的值的全局变量。您可以使用didSelectRow方法。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     selectedCell = indexPath.row 
     self.performSegue(withIdentifier: "YourIdentifier", sender: self) 
    } 

您需要在您的VC1类中添加@IBAction方法。

@IBAction func unwindtoVC1(_ sender: UIStoryboardSegue){ 
    if let sourceVC = sender.source as? YourTableViewController { 
      yourTextFiled.text = sourceVC.selectedCell 
     } 
} 

在你故事情节,在VC2,从控制的viewController +拖放到出口部分来创建一个SEGUE。 enter image description here

从弹出窗口中选择unwindtoVC1方法。

现在,选择segue并在属性检查器中给它任何标识符。 enter image description here

使用该标识在VC2类,在didSelectRow方法,在self.performSegue(withIdentifier: "YourIdentifier", sender: self)

希望这有助于。