创建视图控制器数组?

时间:2013-05-29 20:44:29

标签: ios uitableview storyboard

在应用程序开发方面,我是全新的,所以这可能是一个愚蠢的问题。

所以我创建了一个UI表。它是可自定义的,因为用户可以插入或删除行。我想允许用户点击表格单元格,然后将它们引导到另一个视图控制器。对于每个单元格,所有视图控制器看起来都相同(sorta就像模板一样)。知道如何使用故事板实现这一点吗?

欣赏它!

2 个答案:

答案 0 :(得分:1)

您不需要视图控制器数组。您只需要一个视图控制器,当用户单击要导航到它的单元格时,它将被实例化,并在用户关闭屏幕后立即取消分配以返回到主视图控制器。

您需要在故事板中实现此功能,即从主视图控制器中的单元格或按钮添加推送segue到“详细信息”视图控制器。当segue被触发时,在控制器的视图出现在屏幕上之前,您的代码有机会在prepareForSegue:sender:方法中配置新创建的“详细信息”视图控制器。在这里您可以自定义显示在详细视图中的数据(可能是根据表中触发segue的特定行)。

这是一个link to a good tutorial,解释了如何使用Xcode和故事板构建主 - 详细信息应用程序。

答案 1 :(得分:0)

在故事板中,您创建了一个viewcontroller,它将在选择单元格后显示数据,您只需要一个而不是数组。将它从tableviewcontroller链接到新的viewcontroller。单击Xco​​de中的segue,然后在检查器中为其指定唯一标识符。

选择单元格时会调用

tableView:didSelectRowAtIndexPath:,此处可以执行segue:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  self.selectedObject = ... // store the object that was selected
   [self performSegueWithIdentifier:@"mySegue" sender:self];
}

在tableviewcontroller中,确保实现prepareForSegue:sender:。在这里,您可以移交正确的模型对象,以使用数据填充目标viewcontroller。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  if([[segue identifier] isEqualToString:@"mySegue"])
  {
    MyDetailViewCotroller  *controller = [segue destinationViewController];
    controller.dataObject = self.selectedObject;
  }
}

查看Apple的示例代码(不使用Storyboard):http://developer.apple.com/library/ios/#samplecode/SimpleDrillDown/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007416