只是一个小问题。我有一个根视图控制器(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]];
}
答案 0 :(得分:0)
你的didSelectRowAtIndexPath:
方法实际上并没有做任何事情 - 它会分配并初始化AufnahmeISTDetailTableViewController
,但随后对该控制器不执行任何操作,因此它会在该方法结束时消失。
你要做的是根据tableView当前选择的行在istAufnahmeInt
中设置控制器上的prepareForSegue:
值 - 基本上,将你的逻辑放在{{1}中进入didSelectRowAtPath:
。
prepareForSegue:
答案 1 :(得分:0)
你非常困惑。正如其他海报所指出的那样,在你的didSelectRowAtIndexPath方法中,你要创建一个新的AufnahmeISTDetailTableViewController对象,在其上设置属性,然后忘记它。别这么做。
您要做的是将整数实例变量的值设置为当前行号,这样您就可以记住它。然后,在prepareForSegue方法中,获取指向目标视图控制器的指针,将其转换为正确的类型,并传递保存的整数值。
顺便说一句,什么应该触发你的segue?在表视图中选择一行应该直接触发segue,还是用户必须做其他事情?