2015-02-09 143 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

相关问题