如何传递int的数据?

时间:2014-06-12 17:09:25

标签: ios objective-c uitableview int

只是一个小问题。我有一个根视图控制器(AufnahmeIstTableViewController)和一个详细视图控制器(AufnahmeISTDetailTableViewController)

我还有一个名为istAufnahmeInt的int。当用户在我的根视图控制器上选择第1行时,my int的值设置为0.当按下第2行时,该值设置为1,...。

在我的prepareForSegue方法中,我有以下代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"DetailView"])
{
AufnahmeISTDetailTableViewController *controller =(AufnahmeISTDetailTableViewController *)segue.destinationViewController;
controller.istAufnahmeInt = //What should I enter here? ;
}
}

那么,我必须输入我的评论才能获得我的istAufnahmeInt的价值?

我使用故事板。

完成:这是我的didSelectRowAtIndexPath方法:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
AufnahmeISTDetailTableViewController *categories =     [[AufnahmeISTDetailTableViewController alloc]init];

if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Gesetze"])
categories.istAufnahmeInt = 0;

if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Messmittel"])
categories.istAufnahmeInt = 1;

if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Dritte"])
categories.istAufnahmeInt = 2;

[categories setTitle:[self.categoryArray objectAtIndex:indexPath.row]];


}

2 个答案:

答案 0 :(得分:0)

你的didSelectRowAtIndexPath:方法实际上并没有做任何事情 - 它会分配并初始化AufnahmeISTDetailTableViewController,但随后对该控制器不执行任何操作,因此它会在该方法结束时消失。

你要做的是根据tableView当前选择的行在istAufnahmeInt中设置控制器上的prepareForSegue:值 - 基本上,将你的逻辑放在{{1}中进入didSelectRowAtPath:

prepareForSegue:

答案 1 :(得分:0)

你非常困惑。正如其他海报所指出的那样,在你的didSelectRowAtIndexPath方法中,你要创建一个新的AufnahmeISTDetailTableViewController对象,在其上设置属性,然后忘记它。别这么做。

您要做的是将整数实例变量的值设置为当前行号,这样您就可以记住它。然后,在prepareForSegue方法中,获取指向目标视图控制器的指针,将其转换为正确的类型,并传递保存的整数值。

顺便说一句,什么应该触发你的segue?在表视图中选择一行应该直接触发segue,还是用户必须做其他事情?