gpt4 book ai didi

ios - 根据选择的行将数据从 UITableView 传递到另一个 ViewController

转载 作者:行者123 更新时间:2023-11-30 12:10:53 25 4
gpt4 key购买 nike

我有两个 ViewController,一个包含 UITextView,另一个包含 UITableView。我希望我的应用程序将所选行的数据从包含 UITableView 的 SecondViewController 传递到第一个 ViewController 中的 UITextView,具体取决于用户选择的行。我在firstViewController中使用下面的代码(只是为了给你一些历史记录,我所拥有的是firstViewController内的UITextView,用户可以选择输入自定义值或施加长按手势,然后显示一个弹出窗口,其中包含我想要实现的是,当从包含 UItableView 的 popoverView 中选择一行时,popoverView 将关闭,并且表中突出显示的值将显示在第一个ViewController 中的 UITextView 中):

    class ViewController: UIViewController, UITextViewDelegate, UIPopoverPresentationControllerDelegate {

@IBOutlet weak var indicativeDesignWorkingLifeTextView: UITextView!

var textInsideIndicativeDesignWorkingLifeTextView: String? = nil

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

indicativeDesignWorkingLifeTextView.text = textInsideIndicativeDesignWorkingLifeTextView

indicativeDesignWorkingLifeTextView.attributedText = placeholderTextInIndicativeDesignWorkingLifeTextView

}

}

以及第二个ViewController中的以下代码:

@objc func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

func prepare(for segue: UIStoryboardSegue, sender: UITableViewCell?) {

let toFirstViewController = segue.destination as! ViewController

// Pass the selected object to the new view controller.

if let indexPath = self.indicativeDesignWorkingLifeTable.indexPathForSelectedRow {

let selectedRow = years[indexPath.row]

toFirstViewController.textInsideIndicativeDesignWorkingLifeTextView = selectedRow

}

}

}

但是,当我运行模拟器并从表中选择一行时,firstViewController 中的 UITextView 内没有任何反应?所发生的只是显示第一个ViewController。非常感谢任何帮助。

谢谢,沙迪。

最佳答案

将您的代码更新为:

@objc func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

self.performSegue(withIdentifier: "<set identifier String>", sender: indexPath)

}


func prepare(for segue: UIStoryboardSegue, sender:Any?) {

let toFirstViewController = segue.destination as! ViewController

// Pass the selected object to the new view controller.

if let indexPath = sender as? IndexPath {
print("indexPath - \(indexPath)")
let selectedRow = years[indexPath.row]
print("selectedRow - \(selectedRow)")
toFirstViewController.textInsideIndicativeDesignWorkingLifeTextView = selectedRow

}

}

关于ios - 根据选择的行将数据从 UITableView 传递到另一个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080668/

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