使您的视图控制器 aUITableViewDelegate
和UITableViewDataSource
. 然后将您的代表设置为viewDidLoad
: self.myTableView.delegate = self
。
然后,只需在代码中实现数据源和委托方法,特别是这个:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"myCustomSegue" sender:indexPath];
}
编辑:这是在 IB 中设置手动 segue 的方法。首先,选择你的第一个视图控制器,控制+单击并拖动到你的第二个视图控制器,然后从小菜单中选择“push”。
然后,通过单击 segue 本身(视图控制器之间线上的圆圈)命名您的 segue。然后转到右侧的 Attributes Inspector,您会看到一个名为 Identifier 的字段。输入您想要的名称。
完成此设置后,该performSegueWithIdentifier:sender:
方法应该可以工作。
还有一点需要注意:您可以在 method 中设置 segue 的工作方式prepareForSegue:sender:
。这是一个示例实现。用您的自定义类替换类和属性名称。请注意,您可以通过此方法设置目标的公共属性:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender //sender should be an NSIndexPath object
{
if ([segue.identifier isEqualToString:@"myCustomSegue"]) {
NSIndexPath *indexPath = sender;
MyViewController *secondViewController = (MyViewController*)segue.destinationViewController;
UITableViewCell* cell = [self tableView:self.tableView cellForRowAtIndexPath:indexPath]
secondViewController.name = cell.textLabel.text
}
}