在UITableView

时间:2015-05-06 10:03:29

标签: ios iphone xcode uitableview parse-platform

当用户从PFObject中选择一个单元格时,我尝试将当前ViewController的{​​{1}}传递给另一个ViewController,这是我的代码:

UITableView

我宣布PFObject:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"boxCell";
NSInteger row = [indexPath row];
boxTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if(cell == nil){
    cell = [[boxTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}

PFObject *boxe = [PFObject objectWithClassName:@"Boxe"];
boxe = [self.arrayBox objectAtIndex:row];


PFQuery *query = [PFQuery queryWithClassName:@"Boxe"];
[query whereKey:@"objectId" equalTo:boxe.objectId];

[query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
    if(object){
        // I instanciate the PFObject
        box = object;
        cell.nomBoxe.text = object[@"contenu"];
        cell.qteBoxe.text = [NSString stringWithFormat:@"%@ boxes disponbiles",object[@"quantite"]];
        cell.prixBoxe.text = [NSString stringWithFormat:@"%@€",object[@"prix"]];
        cell.descriptionBoxe.text = object[@"description"];
    } else {
        NSLog(@"Erreur lors de chargement, erreur : %@",error.description);
    }
}];
return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier:@"segueToBoxDetail" sender:self];
}


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"segueToBoxDetail"]) {
    boxDetailViewController *boxDetailVC = [segue destinationViewController];
    boxDetailVC.box = box;
    }
}

在另一个ViewController中,我有一个对象框的属性:

@implementation RestauCardViewController{
PFObject *box;
}

我收到了这个错误:

  

由于未捕获的异常而终止应用   'NSInvalidArgumentException',原因:' - [UIViewController setBox:]:   无法识别的选择器发送到实例0x12aad9100'

请帮助

3 个答案:

答案 0 :(得分:0)

prepareForSegue:中用此行替换您的声明。

boxDetailViewController *boxDetailVC = (boxDetailViewController*)[segue destinationViewController];

修改 Plz移动

property(nonatomic) PFObject *box; 

到你的.h文件行

答案 1 :(得分:0)

你在错误的地方写财产。目前,您正在类扩展中编写它。类扩展用于仅将数据保密到该类。

尝试在.h文件中写入相同的属性。

在.h文件中声明的

属性可供其他类访问。所以其他类可以访问其访问器方法并设置其值。

请告诉我。

答案 2 :(得分:0)

我也得到了同样的错误。解决了它,所以想在这里分享。

我有一个UIViewController类,它与segue连接到UITableViewController

实际上我正在将segue与UINavigationController连接起来。

将segue连接更改为UITableViewController解决了问题。