我一直试图将一些标签划分到另一个视图控制器,但我似乎无法解决这个问题。
我的第一个视图控制器:
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]
}
答案 0 :(得分:0)
我想我知道你的问题。您似乎将一个String数组传递给一个字符串对象。
也许您可以将第二个视图控制器的变量更改为:
var vc2Labels: [String]!
但我不建议使用隐式展开可选,因为它允许传入nil。你可以像这样声明一个空数组。
var vc2Labels = [String]()
希望这会有所帮助。更多背景会有所帮助。