当用户从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'
请帮助
答案 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
解决了问题。