我有一个问题我无法在任何地方解决它。我有一个视图控制器,里面有一个表视图。此表视图显示了一些数据,并有一个按钮,通过该行的某些数据移动到另一个视图控制器。但不幸的是,我甚至无法转移到另一个视图控制器。已经尝试过仅使用Storyboard,并通过protocol / delegate以编程方式进行尝试。 有人能帮我吗? Storyboard
关注一些代码: func tableView(tableView:UITableView,numberOfRowsInSection section:Int) - > Int { 返回NumberOfRows }
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var Cont = 0
for var i = indexPath.row ; i>0; i-- {
Cont += QuantidadeCombustivel[i]
}
let cell = tableView.dequeueReusableCellWithIdentifier("PostoTableViewCell", forIndexPath: indexPath) as! PostoTableViewCell
if (self.NomesArray.count != 0) && (self.imagensArray.count != 0) {
cell.NomePosto.text = self.NomesArray[indexPath.row]
cell.BandeiraPosto.imageFromUrl(self.imagensArray[indexPath.row])
cell.distanciaLabel.text = "Distância: \(self.DistanciaArray[indexPath.row])"
var result = ""
for i in Cont...Cont+self.QuantidadeCombustivel[indexPath.row+1]-1 {
result += ("\(self.NomeCombustivel[i]) : \(self.ValorCombustivel[i])\n")
}
cell.ListaCombustivel?.text = result;
}
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
openMapForPlace(indexPath.row)
}
类PostoTableViewCell:UITableViewCell {
@IBOutlet weak var BandeiraPosto: UIImageView!
@IBOutlet weak var NomePosto: UILabel!
@IBOutlet weak var ListaCombustivel: UITextView!
@IBOutlet weak var distanciaLabel: UILabel!
@IBOutlet weak var SgInfoPosto: UIButton!
答案 0 :(得分:0)
你必须这样做
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! TableViewCell
cell.button.tag = indexPath.row
return cell
}
和
@IBAction func buttonPressed(sender: AnyObject) {
print(sender.tag)
self.performSegueWithIdentifier("yourSegueIdentifier", sender: tableView)
}
答案 1 :(得分:-2)
考虑2个ViewCOntrollers,带按钮的那个让它说它是FirstVC,目的地叫做SecondVC.Check是你的FirstVC嵌入导航控制器吗?。如果没有那么首先将它嵌入导航控制器单击FirstVC,然后单击Editor选项卡,在其中单击embed,然后嵌入Navigation Controler,然后在Storyboard中将FirstVC中的segue提供给SecondVC。之后,在按钮操作方法中编写以下代码。
[self performSegueWithIdentifier:@"SegueIdentifier" sender:nil];
在发件人中,您也可以传递数组。
然后写一个方法
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
SecondVC *destination = [segue destinationViewController];
}
否则你也可以使用下面的代码 在您的按钮操作方法中,编写以下代码
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
SecondVC* secondVC = [storyboard instantiateViewControllerWithIdentifier:@"StoryboardIdentifier"];
[self.navigationController pushViewCpntroller:secondVC animated:YES];