gpt4 book ai didi

ios - 使用数据快速转至之前的 VC

转载 作者:搜寻专家 更新时间:2023-11-01 06:08:08 26 4
gpt4 key购买 nike

我希望执行两种不同的转场。

我有一个由“Present Modally” 输入的 VC。从那个 VC 我有另一个 segue(Push) 导致 TableView VC。

问题一

我希望在您触摸一行后能够从 TableView 返回到上一个 VC。所以我的问题是,我不知道要使用哪种类型的 segue 才能返回一步,同时还要发送数据。

我有一个关闭按钮设置为“unwind to VC”,但这只是关闭我的 VC。

问题2

从 TableView 我有另一个 segue(push) 导致另一个 TableView VC。 - 您选择类别,然后选择子类别。我的问题是我不知道如何后退一步或如何转至从两个 TableView Controller 发送信息的 VC1

谢谢

最佳答案

问题一:

在 YourTableViewController 类的顶部(不是在类内部而是在顶部意味着在外部)实现以下协议(protocol):

protocol MyTableViewControllerDelegate {
func tableViewController(controller: YourTableViewController, didFinishPicking Item item: SomeItemYouWantToPassBack)
}

然后您执行以下操作:在您的 TableView Controller 类 (YourTableViewController) 中实现这些:

弱变量委托(delegate):MyTableViewControllerDelegate?\实现委托(delegate)的风格。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

let itemYouWantToPassBackToVC: SomeItemYouWantToPassBack = dataImplementedInTableView[indexPath.row]
delegate?.tableViewController(self, didFinishPickingItem item: itemYouWantToPassBackToVC)

dismissViewControllerAnimated(true, completion: nil)


tableView.deselectRowAtIndexPath(indexPath, animated: true)


}

然后在您之前的 VC 中实现您在协议(protocol)中创建的功能:

func tableViewController(controller: YourTableViewController, didFinishPicking Item item: SomeItemYouWantToPassBack) {

// Here you take the "item" parameter and use it for your purpose. It is the item you wanted to pass back here

}

此外,请阅读 apple 文档以了解有关协议(protocol)和委托(delegate)的更多信息。

问题2:

好的...在这种情况下我建议如下:在 VC1 中实现以下功能:

@IBAction func unwindToVC1() {
\\you can leave this place empty
}

然后,注意这些词:在您的 Storyboard中找到 TableView 编号 2(显示所有子类别的那个)的 View Controller ,在它的顶部您将看到三个按钮。 CTRL + 从黄色拖动到红色导出门,然后从弹出窗口中选择“unwindToVC1”。

在文档大纲(显示 Storyboard中所有内容的 ListView )中找到新创建的 segue 并为其命名,我们说“segueVC1”。

然后在 TableViewControllerNumberTwo 中实现这个:

override func tableView(tableView: UITableView, didSelectItemAtIndexpath indexPath: NSIndexPath) {

let item1 = yourDataModel[indexPath.row]
performSegueWithIdentifier("segueVC1", sender: item1)

}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if let segue.identifier == "segueVC1" {
let vc = segue.destinationViewController as VC1 \\ VC1 is the first vc you want to segue to
vc.modelToReceive = sender as modelToReceiveClass

}
}

关于ios - 使用数据快速转至之前的 VC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32099512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com