我正在使用swift 2 beaucse我的lappy没有提出快速3因为某些问题。 我想将数据从视图控制器传递到表视图控制器.. 但我收到了一些错误,这是我的代码
我想传递值表单视图控制器。我正在使用标签。无论我将在标签中写什么,它将在表视图控制器中显示。所以它将具有实时价值!
我正在使用两个视图控制器和一个表视图控制器...我在表视图控制器中有错误。 我有一些错误
1)cell1.textLabel!.text = tblLable.text! //错误UItableview在'text'中没有memeber
查看控制器
@IBOutlet var labelText: UITextField!
override func viewDidLoad()
{
super.viewDidLoad()
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
let DestViewController:PassDataView = segue.destinationViewController as! PassDataView
DestViewController.passdata = labelText.text!
//print(DestViewController.passdata)
}
passdataview
@IBOutlet var Label:UILabel!
var passdata=String()
override func viewDidLoad()
{
Label.text=passdata
}
}
tableviewcontroller
override func viewDidLoad() {
super.viewDidLoad()
//myTableView.delegate = self;
// myTableView.dataSource = self;
}
@IBOutlet var tblLable: UITableView!
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
let DestViewController:PassDataView = segue.destinationViewController as! PassDataView
DestViewController.passdata = tblLable.text!// error UItableview has no memeber in 'text'
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell1 = tableView.dequeueReusableCellWithIdentifier("cell1", forIndexPath: indexPath)
cell1.textLabel!.text = tblLable.text! // error UItableview has no memeber in 'text'
return cell1
}
答案 0 :(得分:2)
您必须在第三个视图控制器(表视图控制器)中声明String变量,如
var myString: String = ""
override func viewDidLoad() {
super.viewDidLoad()
}
您可以从第一个视图控制器(如
)为myString变量赋值let DestViewController:tableviewcontroller = segue.destinationViewController as! tableviewcontroller
DestViewController.myString = labelText.text!
您的tableview视图方法就像
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell1 = tableView.dequeueReusableCellWithIdentifier("cell1", forIndexPath: indexPath)
cell1.textLabel!.text = myString
return cell1
}
以上是解决方案,下面我解释问题是什么
UITableview没有这样的文本方法,因此您在
时遇到错误DestViewController.passdata = tblLable.text! //In first View Controller
cell1.textLabel!.text = tblLable.text! //In second View controller