无法在视图控制器之间发送数据Swift

时间:2017-01-20 06:07:49

标签: ios swift delegates

我的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
    }
   }
 }        

但不幸的是它没有用。

1 个答案:

答案 0 :(得分:0)

实际上你是从LogInViewController设置委托属性,然后当你出示var delegate:SendDel!=nil时,你已经编写了代码nil,每当你点击按钮时代表 var delegate: SendDel?

请尝试以下代码:

{{1}}

希望它适合你。