【问题标题】:how to segue to a detail view from created tableview cell in Expandable/Collapsable UITableView如何从可扩展/可折叠 UITableView 中创建的表格视图单元格中转到详细视图
【发布时间】:2015-03-26 11:28:31
【问题描述】:

我是 Xcode 的新手,现在我正在开发一个可扩展/可折叠的 UITableView。基本思想是在单击第一个主单元格时创建新的子下拉单元格,并且子单元格可以转到详细视图。但我希望从这些新的子单元中继续查看详细视图。我发现有两种选择:

  • 创建一个转场
  • 创建一个推送视图控制器。

我拖动了一个新的视图控制器并定义了它的故事板 ID,并尝试以编程方式创建一个 segue 来推送新的细节视图。但它不工作。有人可以帮我吗?谢谢。

//didSelectRowAtIndexPath

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

//to change the button image when selecting a row.
UITableViewCell *cell =  [tableView cellForRowAtIndexPath:indexPath];
UIButton *arrowBtn = (UIButton*)[cell viewWithTag:10];

NSDictionary *dic=[self.itemsinTable objectAtIndex:indexPath.row];
if([dic valueForKey:@"list"])
{
    NSArray *listarray=[dic valueForKey:@"list"];
    BOOL isTableExpanded=NO;

    for(NSDictionary *subitems in listarray )
    {
        NSInteger index=[self.itemsinTable indexOfObjectIdenticalTo:subitems];
        isTableExpanded=(index>0 && index!=NSIntegerMax);
        if(isTableExpanded) break;
    }

    if(isTableExpanded)
    {
        [self CollapseRows:listarray];
        [arrowBtn setImage:[UIImage imageNamed:@"down_arrow.png"] forState:UIControlStateNormal];


    }
    else
    {
        NSUInteger count=indexPath.row+1;
        NSMutableArray *arrCells=[NSMutableArray array];
        for(NSDictionary *dInner in listarray )
        {
            [arrCells addObject:[NSIndexPath indexPathForRow:count inSection:0]];
            [self.itemsinTable insertObject:dInner atIndex:count++];
        }
        [self.expandingtableView insertRowsAtIndexPaths:arrCells withRowAnimation:UITableViewRowAnimationTop];
       [arrowBtn setImage:[UIImage imageNamed:@"up_arrow.png"] forState:UIControlStateNormal];

        //This segue is not working...
        UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"detailvcontroller"];
        [self.navigationController pushViewController:controller animated:YES];}}}

【问题讨论】:

    标签: objective-c uitableview segue expandable collapsable


    【解决方案1】:
    detailvcontroller *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"detailvcontroller"];
    
    [self.navigationController pushViewController:controller animated:YES];
    

    【讨论】:

      【解决方案2】:

      您需要在这里检查几件事:

      1. DetailViewController 的故事板标识符设置正确。
      2. self.storyboard 已正确初始化。
      3. 根视图具有导航控制器。

      我刚刚在故事板初始化代码下面添加了。请确保您的self.storyboard 是这样设置的:

      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
      DetailViewController *viewController = (DetailViewController *)[storyboard instantiateViewControllerWithIdentifier:@"detailvcontroller"];
      [self.navigationController pushViewController:controller animated:YES];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-31
        • 1970-01-01
        • 1970-01-01
        • 2016-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多