segue到另一个视图控制器

时间:2015-02-09 05:59:02

标签: swift ios8 xcode6

我一直试图将一些标签划分到另一个视图控制器,但我似乎无法解决这个问题。

我的第一个视图控制器:

  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


}

}

这里的标签是我想要的但是“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]
        }

1 个答案:

答案 0 :(得分:0)

我想我知道你的问题。您似乎将一个String数组传递给一个字符串对象。

也许您可以将第二个视图控制器的变量更改为:

var vc2Labels: [String]!

但我不建议使用隐式展开可选,因为它允许传入nil。你可以像这样声明一个空数组。

var vc2Labels = [String]()

希望这会有所帮助。更多背景会有所帮助。