[英]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.