所以我试图从两个视图控制器之间的当前indexPath.row传递一些数据。两个视图控制器都有:
var imageFile = [PFFile]()
var imageText = [String]()
var username = [String]()
var createdAt = [NSDate]()
var objID = [String]()
var thumbEmoji = [NSArray]()
var loveEmoji = [NSArray]()
var laughEmoji = [NSArray]()
var handsEmoji = [NSArray]()
var pooEmoji = [NSArray]()
var comments = [NSArray]()
var tagString = ""
如何在override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
中传递此内容并获取当前indexPath.row
?
答案 0 :(得分:1)
这将为您提供indexPath
和目标控制器,以便您可以设置它的数据。 sender
也是UITableViewCell
个实例。这是默认实现,其中每个单元格触发ShowDetail
segue。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
if let indexPath = self.tableView.indexPathForSelectedRow, let controller = segue.destinationViewController as? [your_destination_controller_type] {
//Do you thing here
}
}
}
答案 1 :(得分:0)
只需将发件人作为indexPath
传递,您必须将其转换回prepareForSegue
方法
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier:@"identifire" sender:indexPath];
}
在prepareForSegue
方法中就像:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"identifire"]) {
NSIndexPath *ip = (NSIndexPath *)sender;
YourTargetView *gcVC = (YourTargetView *)[segue destinationViewController];
gcVC.passdata = [YourArray objectAtIndex:ip.row];
}
}
HTH !!
答案 2 :(得分:0)
让indexPath:NSIndexPath = self.tableView.indexPathForSelectedRow!
答案 3 :(得分:0)
我建议您将数据模型移到视图控制器之外。这样,你不必传递任何东西。当控制器想要更改数据时,它会告诉数据模型更新它。当控制器想要显示数据时,它会要求数据模型提供数据。
然后,一条数据模型信息变为“哪个是当前项目”。