在应用程序开发方面,我是全新的,所以这可能是一个愚蠢的问题。
所以我创建了一个UI表。它是可自定义的,因为用户可以插入或删除行。我想允许用户点击表格单元格,然后将它们引导到另一个视图控制器。对于每个单元格,所有视图控制器看起来都相同(sorta就像模板一样)。知道如何使用故事板实现这一点吗?
欣赏它!
答案 0 :(得分:1)
您不需要视图控制器数组。您只需要一个视图控制器,当用户单击要导航到它的单元格时,它将被实例化,并在用户关闭屏幕后立即取消分配以返回到主视图控制器。
您需要在故事板中实现此功能,即从主视图控制器中的单元格或按钮添加推送segue到“详细信息”视图控制器。当segue被触发时,在控制器的视图出现在屏幕上之前,您的代码有机会在prepareForSegue:sender:
方法中配置新创建的“详细信息”视图控制器。在这里您可以自定义显示在详细视图中的数据(可能是根据表中触发segue的特定行)。
这是一个link to a good tutorial,解释了如何使用Xcode和故事板构建主 - 详细信息应用程序。
答案 1 :(得分:0)
在故事板中,您创建了一个viewcontroller,它将在选择单元格后显示数据,您只需要一个而不是数组。将它从tableviewcontroller链接到新的viewcontroller。单击Xcode中的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