segue到另一个视图控制器
问题描述:
我一直试图扩大到另一个视图控制器的一些标签,但我似乎无法工作。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]
}
答
我想我知道你的问题。您似乎将一个String数组传递给一个字符串对象。
也许你可以改变你的第二个视图控制器的变量是:
var vc2Labels: [String]!
,但我不会建议使用可选的隐含解包,因为它允许以零的传球。你可以像这样声明一个空数组。
var vc2Labels = [String]()
希望这会有所帮助。更多的上下文会很有帮助。
我的第二个视图控制器似乎现在正常工作,但在我的第一个控制器中,我有“controller.vc2Labels = pickerLabels”pickerLabels显示错误“'String'与'String'不相同” – 2015-02-09 06:32:19
您使用了哪种方法?也许我可以尝试在我的操场上复制错误,以便我可以进一步帮助您。 – geekveek 2015-02-09 06:34:08
let optionalStrings:[String!] = [“Test”,“test2”] \ n 让字符串:[String!] = optionalStrings – geekveek 2015-02-09 06:40:05