繁体   English   中英

在iOS Swift 2中将数据从视图控制器传递到表视图控制器

[英]Passing data from view controller to table view controller in ios swift 2

在此处输入图片说明 我使用的是swift 2 beaucse,因为某些问题,我的lappy不支持swift 3。 我想将数据从视图控制器传递到表视图控制器..但是我遇到了一些错误,这是我的代码

我想传递值形式视图控制器。我正在使用label。 无论我将在标签中写什么,它将显示在表视图控制器中。 因此它将具有实时价值!

我正在使用两个视图控制器和一个表视图控制器...我在表视图控制器中有错误。 我有一些错误

1)cell1.textLabel!.text = tblLable.text! //错误UItableview在'text'中没有成员

视图控制器

@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标签: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
}

您必须在第3个View Controller(表View Controller)中声明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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM