我有一个View1当我点击文本框我要view2(表视图)来选择一个值。我想将选取的值发送到该文本框的view1。传递数据到以前的视图没有segue,@ IBaction swift
控件是以编程方式创建的,所以我没有使用segue,IBActions。
我想使用协议方法仍然没有成功。这是我尝试过的。
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() {
}
}
第二类是这里的委托方法..
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中我打电话委托方法,并试图传递的价值,但没有成功的价值。
我不想创建先前视图控制器的新实例,因为我将丢失用户输入的数据,所以我弹出当前视图控制器并转到前一个视图控制器。
请建议我的方法是否正确?
错误: 致命错误:意外发现零而提前展开的可选值
谢谢
你如何从一个视角到另一个视角而无需继续? –
当文本框被编辑我打电话下面FUNC导航到其他视图 FUNC ButtonPressed() { 打印(“按钮按下!!”) //这将创建视图控制器的新实例。 让vc = UIStoryboard(name:“Main”,bundle:nil).instantiateViewController(withIdentifier:“Storage”)as! testClass self.navigationController?.pushViewController(vc,animated:true) } – Dev