0

我试图推到情节提要中的详细视图,但不工作。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"drinkList"])
    {
        NSIndexPath *myIndexPath = [self.drinksCatTable indexPathForSelectedRow];

        if (myIndexPath.row ==0) //if selected is row 1 
        {
            selectedDrinkCat  =[segue destinationViewController];
            Drinks *drinkList = [aDelegate.categoryArray objectAtIndex:0];//forward all drinks to drinksList
            selectedDrinkCat.drinkList = drinkList;//point drinkList to the next view drinkList
            selectedDrinkCat.allDrinkStr = @"All";//all drinks selected 
                 NSLog(@"aaa");
        }
        else 
        {
            Drinks *drinkList = [aDelegate.categoryArray objectAtIndex:(myIndexPath.row)-1];//we have to minus 1 as the row had en extra "All" row which is not in the database
            selectedDrinkCat.drinkList = drinkList; 
            selectedDrinkCat.allDrinkStr =@"cat";
            NSLog(@"1111");

        }
    }
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    [self performSegueWithIdentifier:@"drinkList" sender:self];
    NSLog(@"called did select");   

}
4

3 回答 3

2

你不应该声明selectedDrinkCatviewcontroller的类destinationViewController吗?

就像是:

desmondViewController *selectedDrinkCat=(desmondViewController *)[segue destinationViewController];
于 2012-06-02T15:16:27.837 回答
0

您必须使用视图控制器的pushViewController:方法。

于 2012-06-02T13:56:12.973 回答
0

请执行下列操作:

  • 转到storyboard文件
  • 单击viewcontroller1然后按主视图控制器(鼠标+ ^)并将其拖动到viewController2
  • 从上下文菜单中选择推送
  • 将在这些视图之间创建一个链接,单击它并在检查器中更改IndetifierdrinkList

这设置了故事板

现在您编写的代码应该可以工作了。

于 2012-06-02T14:09:58.747 回答