2015-02-09 176 views
0

我一直試圖擴大到另一個視圖控制器的一些標籤,但我似乎無法工作。segue到另一個視圖控制器

我的第一個視圖控制器:

import UIKit 

class firstViewController: UIViewController,UITextFieldDelegate { 

@IBOutlet weak var label1: UILabel! 

@IBOutlet weak var label2: UILabel! 

@IBOutlet weak var label3: UILabel! 

@IBOutlet weak var label4: UILabel! 

@IBOutlet weak var label5: UILabel! 

@IBOutlet weak var label6: UILabel! 


var pickerLabels: [String!] { 
    return [label1.text,label2.text,label3.text,label4.text,label5.text,label6.text] 
} 


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let controller = segue.destinationViewController as thirdViewController 
    controller.vc2Labels = pickerLabels //pickerLabels shows error 


} 

} 

在這裏的標籤是什麼,我想Segue公司,但「pickerLabels」不斷想出一個錯誤

我的第二個視圖控制器:

import UIKit 
class secondViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { 


var vc2Labels: [String]! 




func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{ 
    return 1 

} 

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component:Int) -> Int{ 
    return vc2Labels.count 

} 

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!{ 

    return vc2Labels[row] 
     } 

回答

0

我想我知道你的問題。您似乎將一個String數組傳遞給一個字符串對象。

也許你可以改變你的第二個視圖控制器的變量是:

var vc2Labels: [String]! 

,但我不會建議使用可選的隱含解包,因爲它允許以零的傳球。你可以像這樣聲明一個空數組。

var vc2Labels = [String]() 

希望這會有所幫助。更多的上下文會很有幫助。

+0

我的第二個視圖控制器似乎現在正常工作,但在我的第一個控制器中,我有「controller.vc2Labels = pickerLabels」pickerLabels顯示錯誤「'String'與'String'不相同」 – 2015-02-09 06:32:19

+0

您使用了哪種方法?也許我可以嘗試在我的操場上覆制錯誤,以便我可以進一步幫助您。 – geekveek 2015-02-09 06:34:08

+0

let optionalStrings:[String!] = [「Test」,「test2」] \ n 讓字符串:[String!] = optionalStrings – geekveek 2015-02-09 06:40:05

相關問題