gpt4 book ai didi

swift - 将数据传递到上一个 View 而不使用segue,@IBaction swift

转载 作者:行者123 更新时间:2023-11-30 13:04:23 25 4
gpt4 key购买 nike

当我单击文本框时,我有一个 View1,我将在 view2( TableView )中选择一个值。我想将所选值发送到该文本框的 view1。

控件是以编程方式创建的,因此我没有使用 segue、IBActions。

我尝试使用协议(protocol)方法仍然没有成功。这是我尝试过的。

class DynamicSuperView: UIViewController,UITableViewDelegate,UITableViewDataSource,dropdownDelegate,UITextFieldDelegate
{

func setValue(value:AnyObject)
{
print("dynamic view delegate method executed")
self.labelText = value as! String
//return selectedValue;
}

override func viewDidLoad() {

}
}

第二个类在这里带有委托(delegate)方法..

protocol dropdownDelegate {
func setValue(value: AnyObject);
}


class testClass: UIViewController,UITableViewDataSource,UITableViewDelegate,UISearchBarDelegate {
var delegate:dropdownDelegate! = nil

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

let vcName = names[indexPath.row]
print ("Table view cell clicked and value passed: \(vcName)")

if let cell = tableView.cellForRow(at: indexPath) {
cell.accessoryType = .checkmark

}

self.navigationController?.popViewController(animated: true)

delegate.setValue(value: "Testing delegate")

}

}

一旦我在 TableView 中选择了值,我就会调用委托(delegate)方法并尝试传递该值,但没有成功。

我不想创建前一个 View Controller 的新实例,因为我将丢失用户已输入的数据,因此我将弹出当前 View Controller 并转到前一个 View Controller 。

请建议我的方法是否正确?

错误: fatal error :在解包可选值时意外发现 nil

提前谢谢

最佳答案

试试这个:

view func ButtonPressed() { 

print("Button Pressed!!") // This will create the new instance of the view controller.

let vc = UIStoryboard(name:"Main", bundle:nil).instantiateViewController(withIdentifier: "Storage") as! testClass

vc.delegate = self

self.navigationController?.pushViewController(vc, animated:true)
}

您没有将委托(delegate)设置为第一个 View Controller 。

关于swift - 将数据传递到上一个 View 而不使用segue,@IBaction swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39560859/

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