当用户从PFObject
中选择一个单元格时,我尝试将一个带有当前ViewController
的ViewController
传递给另一个ViewController
,这是我的代码:
-(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;
}
}
我宣布PFObject:
@implementation RestauCardViewController{
PFObject *box;
}
在另一个ViewController中,我有一个对象框的属性:
@property(nonatomic) PFObject *box;
我发现了一个错误:
由于“NSInvalidArgumentException”异常终止应用程序,原因:'-UIViewController setBox::未识别的选择器发送到实例0x12aad9100‘
有什么帮助吗?
发布于 2015-05-06 02:12:35
在prepareForSegue:
中,将声明替换为以下行。
boxDetailViewController *boxDetailVC = (boxDetailViewController*)[segue destinationViewController];
编辑 Plz移动
property(nonatomic) PFObject *box;
行到.h文件
发布于 2015-05-06 02:21:57
你把财产写错地方了。目前,您正在类扩展中编写它。类扩展只用于将数据保密到该类。
尝试在.h文件中写入相同的属性。
属性,其他类可以访问.h文件中声明的属性。因此,其他类可以访问其访问器方法并设置其值。
请让我知道。
发布于 2015-05-26 05:26:16
我也犯了同样的错误。把它也解决了,也想在这里分享。
我有一个UIViewController
类,它与UITableViewController
连接。
实际上,我是在把UINavigationController
连接起来。
将segue连接改为UITableViewController
解决了这个问题。
https://stackoverflow.com/questions/30073513
复制