我的Xcode中有一个标签式项目。但是我的Entry Point
是一个单独的视图控制器,没有连接到tab。所以当用户点击Login
按钮时,我将输入的值发送到其中一个在我的项目的选项卡部分查看控制器。我在分离的VC和VC之间有一个segue,我发送数据。这是我的代码我发送数据的部分
protocol SendDel {
func userDidEnterData(data: String)
}
LogInViewController: UIViewController {
var delegate:SendDel!=nil
@IBAction func SendB(_ sender: Any) {
if(delegate != nil){
if(self.Usn != nil){
let data = self.Usn.text
self.delegate?.userDidEnterData(data: data!)
}
}
}
}
以下是我收到数据的部分代码
class FirstViewController: UIViewController,SendDel {
func userDidEnterData(data: String) {
UsernameLabel.text="\(data)"
dismiss(animated: false, completion: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if(segue.identifier == "First"){
let sendingVc=segue.destination as! LogInViewController
sendingVc.delegate = self
}
}
}
但不幸的是它没有用。
答案 0 :(得分:0)
实际上你是从LogInViewController
设置委托属性,然后当你出示var delegate:SendDel!=nil
时,你已经编写了代码nil
,每当你点击按钮时代表 var delegate: SendDel?
。
请尝试以下代码:
{{1}}
希望它适合你。