0

我有两个视图控制器。一个包含一个表格视图。在 didselectrowforindexpath 方法中,我想将一个对象发送到另一个视图控制器,但该对象在传递给目标视图控制器时为空。

我发送的对象是属于 TableServiceNews 类的 service_ID。目标视图控制器继承 TableServiceNews。

这是 didselectrow 的代码:-

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    TableServiceNews *serviceTable = [[TableServiceNews alloc]init];
    serviceTable.service_ID = [ServiceID objectAtIndex:indexPath.row];
    serviceTable = [self.storyboard     instantiateViewControllerWithIdentifier:@"navigationServiceNews"];
    [self.slidingViewController anchorTopViewOffScreenTo:ECRight
        animations:nil onComplete:^{
        CGRect frame = self.slidingViewController.topViewController.view.frame;
        self.slidingViewController.topViewController = serviceTable;
        self.slidingViewController.topViewController.view.frame = frame;
        [self.slidingViewController resetTopView];
    }];
}

滑动视图控制器方法使用的是我从 github 获得的一个类,https://github.com/edgecase/ECSlidingViewController是链接。

4

2 回答 2

0

代替 :

TableServiceNews *serviceTable = [[TableServiceNews alloc]init];
serviceTable.service_ID = [ServiceID objectAtIndex:indexPath.row];
serviceTable = [self.storyboard instantiateViewControllerWithIdentifier:@"navigationServiceNews"];

和 :

UIViewController *serviceTable = [self.storyboard instantiateViewControllerWithIdentifier:@"navigationServiceNews"];
((TableServiceNews*)serviceTable).service_ID = [ServiceID objectAtIndex:indexPath.row];

问题可能是在从情节提要实例化您的 serviceTable 之前分配 service_ID 值。

顺便说一下,instanceatViewControllerWithIdentifier 返回一个 UIViewController。因此,您需要将其转换为像您创建的子类一样使用它。

于 2013-09-11T12:16:34.237 回答
0

确保在实现中定义了 service_ID (@synthesize),如果它不起作用,请确保在推送新的视图控制器首先加载它之后为其分配值。我希望这有帮助

于 2013-09-11T11:44:27.340 回答