Swift:将UITableViewCell标签传递给新的ViewController

Swift:将UITableViewCell标签传递给新的ViewController,第1张

概述我有一个UITableView,它使用基于JSON调用的数据填充单元格。像这样: var items = ["Loading..."]var indexValue = 0// Here is SwiftyJSON code //for (index, item) in enumerate(json) { var indvItem = json[index]["Brand"]["N 我有一个UItableVIEw,它使用基于JsON调用的数据填充单元格。像这样:
var items = ["Loading..."]var indexValue = 0// Here is SwiftyJsON code //for (index,item) in enumerate(Json) {    var indvItem = Json[index]["Brand"]["name"].stringValue    self.items.insert(indvItem,atIndex: indexValue)    indexValue++}self.tableVIEw.reloadData()

选择单元格后,如何获取标签,然后将其传递给另一个VIEwController?

我设法得到:

func tableVIEw(tableVIEw: UItableVIEw!,dIDSelectRowAtIndexPath indexPath: NSIndexPath!) {    println("You selected cell #\(indexPath.row)!")    // Get Cell Label    let indexPath = tableVIEw.indexPathForSelectedRow();    let currentCell = tableVIEw.cellForRowAtIndexPath(indexPath!) as UItableVIEwCell!;    println(currentCell.textLabel.text)}

我只是不知道如何将它作为一个变量传递给下一个UIVIEwController。

谢谢

在两个视图控制器之间传递数据取决于视图控制器如何相互链接。如果它们与segue链接,则需要使用performSegueWithIDentifIEr方法并覆盖prepareForSegue方法
var valuetoPass:String!func tableVIEw(tableVIEw: UItableVIEw!,dIDSelectRowAtIndexPath indexPath: NSIndexPath!) {    println("You selected cell #\(indexPath.row)!")    // Get Cell Label    let indexPath = tableVIEw.indexPathForSelectedRow();    let currentCell = tableVIEw.cellForRowAtIndexPath(indexPath!) as UItableVIEwCell!;    valuetoPass = currentCell.textLabel.text    performSegueWithIDentifIEr("yourSegueIDentifer",sender: self)}overrIDe func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?) {    if (segue.IDentifIEr == "yourSegueIDentifer") {        // initialize new vIEw controller and cast it as your vIEw controller        var vIEwController = segue.destinationVIEwController as AnotherVIEwController        // your new vIEw controller should have property that will store passed value        vIEwController.passedValue = valuetoPass    }}

如果您的视图控制器没有与segue链接,那么您可以直接从tableVIEw函数传递值

func tableVIEw(tableVIEw: UItableVIEw!,dIDSelectRowAtIndexPath indexPath: NSIndexPath!) {    println("You selected cell #\(indexPath.row)!")    // Get Cell Label    let indexPath = tableVIEw.indexPathForSelectedRow();    let currentCell = tableVIEw.cellForRowAtIndexPath(indexPath!) as UItableVIEwCell!;    let storyboard = UIStoryboard(name: "YourStoryBoardfilename",bundle: nil)    var vIEwController = storyboard.instantiateVIEwControllerWithIDentifIEr("vIEwControllerIDentifer") as AnotherVIEwController    vIEwController.passedValue = currentCell.textLabel.text    self.presentVIEwController(vIEwContoller,animated: true,completion: nil) }
总结

以上是内存溢出为你收集整理的Swift:将UITableViewCell标签传递给新的ViewController全部内容,希望文章能够帮你解决Swift:将UITableViewCell标签传递给新的ViewController所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1052550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存