2017-01-20 81 views
0

我在我的Xcode中有一个标签项目,但我的Entry Point是一个单独的视图控制器,没有连接到标签。所以当用户点击Login按钮我发送输入值在我project.I的选项卡式部分视图控制器的一个具有分离VC和VC,我发送数据to.Here是我的代码在部分地方我发送数据不能发送数据到视图控制器Swift

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

但是unf幸运的是它不起作用。

+1

您是否在故事板中设置了标识符? –

+0

是的,我的名字是'First' @AdrianBobrowski – user7444742

+0

你可以替代这个。您可以将数据保存在NSUserDefaults中,或者创建一个可存储数据的全局字典或数组。 –

回答

0

其实你从FirstViewController设置代理属性,然后当你提出LogInViewController你已经写了代码var delegate:SendDel!=nil这使得代理nil每次你点击按钮。

因此,尝试下面的代码:

var delegate: SendDel? 

希望它为你工作。

相关问题