繁体   English   中英

快速将数组从表视图传递到xcode7上的视图控制器

[英]passing an array from a table view to a view controller on xcode7 in swift

我有一个带有X行的表格视图,我希望如果我点击其中的一行,它会显示一个视图控制器,每一个都有不同的值。 我知道我必须使用prepareForSegue,但我不知道如何。 我举一个例子:这里有4行的表格视图。 我点击第一行,它将打开一个带有显示“ 1”的标签的视图控制器。 我点击第二行,它将打开一个带有显示“ 2”的标签的视图控制器。 等等。 我不想创建数以百万计的视图控制器,我只希望其中的每一个都会更改。

你会帮我一个忙。 谢谢

首先,您需要检测用户的选择。

这是通过-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath函数完成的。

一旦检测到所选行,就需要调用下一个视图控制器。 您可以通过使用情节UIViewController* viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Your VC identifier here"];板实例化要显示的viewController来做到这一点: UIViewController* viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Your VC identifier here"];

要将信息传递给另一个控制器,您可以创建一个属性并将其设置为与任何其他对象一样:

[viewController setCustomArray:@[]]

最后,您需要提供视图控制器:

[self presentViewController:viewController animated:YES completion:nil]

您需要在tableViewController类中添加以下内容

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    text = indexPath.row
    performSegueWithIdentifier("YourSegue", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
  if segue.identifier == "YourSegue" {
    let yourOtherVC = segue.destinationViewController as? SecondViewController
        yourOtherVC?.text = text
  }
}

在您的SecondViewController类中,添加以下内容:

class SecondViewController: UITableViewController {

var text:String = ""
@IBOutlet weak var myLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    if text != nil {
        myLabel.text = text
    }
}

希望这可以帮助。 :)

暂无
暂无

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

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