0

我正在使用显示层次结构数据结构的表格视图。我取第一个节点并在 tableview 中显示儿子并重复它直到树的末尾。我这样做是这样的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if([[actualNode getSonAtIndex:0] sonsCount]>0) {
    NSLog(@"New level");
    actualNode = [actualNode getSonAtIndex:indexPath.row];
    [self.tableView reloadData];
} else {
    NSLog(@"Service");
    [self performSegueWithIdentifier:@"Service" sender:NULL];
}

这不是正确的方法,但问题是我不知道树有多少级别,所以我无法在情节提要中创建它们。这个想法是只创建一个 TableView 来显示每个级别,但是这样做我不能像我在情节提要中使用一些控制器并且我没有那样回到 NavBar 上的上一个级别动画。那么,有什么办法可以做到吗?就像是:

MyNextLevel *nextlevel = [MyNextLevel alloc];
[nextlevel setNode: actualNode]
Myactualtableview = nextlevel; (Here the next level is showed in the screen with animations and with the possibility to go back to the previous level)

谢谢。

4

1 回答 1

1

这就是我不喜欢故事板的原因。总是可以做你想做的事情(如果我理解正确的话),但是故事板会减损它;他们没有在代码中做事的灵活性,这是我们在 iOS 3 和 iOS 4 中总是必须做的事情。

无论如何,你想做这样的事情:

UITableViewController* tvc = [[MyTableViewController alloc] initWithNibName:@"MyNib" bundle:nil];
[self.navigationController pushViewController:tvc animated:YES];

您的业​​务逻辑可以只选择 MyTableViewController 的类。或者,MyTableViewController 可以是一些灵活的东西,在这两行之间你给它一些配置信息,使它显示正确的数据!(不过,我不得不承认,您可以使用情节提要来做同样的事情,在 .) 中配置表格视图控制器performSegue:。)

于 2013-05-01T16:34:03.573 回答