转到另一个视图控制器

segue to another view controller

我一直在尝试将一些标签转移到另一个视图控制器,但我似乎无法解决。

我的第一个视图控制器:

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

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

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

var vc2Labels: [String]!

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

var vc2Labels = [String]()

希望这对您有所帮助。更多上下文会有所帮助。