2014-09-30 47 views
1

可選的價值我想這個代碼意外地發現零而展開的迅速

let secondView = SecondViewController(nibName: "secondView", bundle: nil) 
    secondView.secondViewLabel.text = self.TextBox.text 
    navigationController?.pushViewController(secondView, animated: true) 

我試圖從文本框中的值傳遞給一個標籤,在未來視圖controller.But我得到一個錯誤

我也試着將文本框的值複製到第二個視圖控制器中聲明的sting中,該控制器也返回nil。

let secondView = SecondViewController(nibName: "secondView", bundle: nil) 
    secondView.toPass = self.TextBox.text 
    navigationController?.pushViewController(secondView, animated: true) 
    println(secondView.toPass) // i get the string printed here 

在第二視圖控制器

 var toPass:String! 

鑑於沒有負載

secondLabel.text = toPass 
    println(toPass) // i get the string printed nil 

幫助我,大家好我是新來的迅速

+0

什麼是TextBox?它是什麼類型?什麼是TextBox.text的類型? – JohnVanDijk 2014-09-30 06:17:31

+0

@IBOutlet weak var TextBox:UITextField! – vishnuvarthan 2014-09-30 06:32:05

回答

0

讓toPass一個String有條件的類型一樣所以

var toPass: String?

在viewDidLoad中,做到這一點:

if let passedString = toPass { 
    secondLabel.text = toPass 
    println(toPass) 
} 

然後把一個斷點,如果讓塊內,看是否toPass過的值或者沒有被設置的。真的需要知道TextBox是什麼類型。

[編輯2]

如果問題該值被設置的viewController secondView已經從筆尖解碼之前,我建議你做一個使用initWithNib便利初始化,但也需要在額外的標題字符串或任何它。在那裏,您可以將textLabel文本的值設置爲新初始化程序所採用的參數。當然這意味着你必須繼承UIViewController。

+0

它沒有進入循環。我已經提到toPass的值爲空 – vishnuvarthan 2014-09-30 06:37:37

+0

爲什麼我不能直接傳遞字符串,如我在第一個問題中提到的。任何想法? – vishnuvarthan 2014-09-30 06:39:10

+0

IMO'secondView.secondViewLabel.text = self.TextBox.text'在nib解碼之前被調用,因此它沒有被設置,因爲'secondViewLabel'還沒有綁定。 – JohnVanDijk 2014-09-30 07:04:09

相關問題