2017-01-20 79 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? 

希望它爲你工作。

相關問題