我有一个vc将数组传递给第二个vc。第二个vc更改了数组,并且在解除时必须将修改后的数组传递给第一个vc。
将数组传递给第一个,我管理
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc : MedicacaoPopUp = storyboard.instantiateViewControllerWithIdentifier("MedicacaoPopUp") as! MedicacaoPopUp
vc.nomeAlunoP = nomeAluno.text!
vc.turmaAlunoP = turmaAluno.text!
vc.medicacao = medicacao
vc.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
self.presentViewController(vc, animated: true, completion: nil)
将修改后的数组传回第一个vc无法
a)我在第一个vc文件中创建了协议,我在deletegated中创建了func以获得数组的值
protocol MedicacaoAddDelegate: class {
func receiveRemedios(rMedicacao: [AnyObject])
}
class MedicacaoAdd: UIViewController, UITextFieldDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, MedicacaoAddDelegate {
var medicacao = [AnyObject]()
func receiveRemedios(rMedicacao: [AnyObject]) {
print("dentro do receiveRemedios")
medicacao = rMedicacao
trataCesto()
}
b)在第二个vc中我创建了变量“delegate”并在按下按钮时调用了该函数
class MedicacaoPopUp: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableview: UITableView!
weak var delegate: MedicacaoAddDelegate?
var nomeAlunoP = ""
var turmaAlunoP = ""
var medicacao = [AnyObject]()
override func viewDidLoad() {
self.tableview.delegate = self
self.tableview.dataSource = self
}
@IBAction func btnDismiss(sender: UIButton) {
self.delegate?.receiveRemedios(medicacao)
self.dismissViewControllerAnimated(true, completion: nil)
}
我真的不知道我做错了什么。我已经尝试了在stackoverflow上找到的所有替代方案,但没有任何效果。
答案 0 :(得分:0)
您似乎忘记设置所呈现VC的代理。
let vc : MedicacaoPopUp = storyboard.instantiateViewControllerWithIdentifier("MedicacaoPopUp") as! MedicacaoPopUp
添加
vc.delegate = self
答案 1 :(得分:0)
真的是一个结构良好的代码。使用协议和委托作为回调从弹出窗口返回数据是个好主意。
只有一件事......这是什么
__m128 dst = _mm_cvtps_epi32( _mm_floor_ps(__m128 src) );
在第一个代码段中?