0

我已经搜索了有关如何使 UITableViewController 深入研究的高级教程...

我的场景是:主列表是国家。点击其中一个单元格,会显示该国家/地区的一些城市,并显示在新的 UITableView 中。这部分很简单 - 但添加“更深层次”,我错过了如何做的理解:(假设城市可以有其他选择,如酒店、餐厅、酒吧。点击餐厅再次为您提供新的外汇选择。食物style, FastFood, Mexican, Indian, local. 如果你看快速路径,它可能是:Country->City->Restaurant->FastFood->McDonalds

现在,最困难的部分是,我想保存麦当劳的价值,并将其带回 view2(城市)

有没有人知道一个好的教程,无论是书面的还是 Youtube 上的 - 它会非常棒!

提前致谢 :)

4

1 回答 1

0

这是您如何做到这一点的方法。首先在您的 City View Controller 上创建并合成一个名为selectedValue

@property (nonatomic, strong) NSString *selectedValue;

然后,当在最后一级 tableViewController 上选择值时,在 UINavigationController 的导航堆栈中找到 City viewController,在该 viewController 上设置属性,然后将导航堆栈弹出到该 viewController。

所以在你的最后一级 viewController 你的代码看起来像:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *rowValue = [dataArray objectAtIndex:[indexPath row]]; //  e.g. McDonald's

    // loop through view controller stack to find the city viewcontroller
    // (if the index of the city viewcontroller will always be the same you could just go directly to that index)
    NSArray *viewControllers = [self.navigationController viewControllers];
    for (UIViewController *vc in viewControllers) {

        if ([vc isMemberOfClass:[CityViewController class]]) {
            CityViewController *cityVC = (CityViewController*)vc;
            cityVC.selectedValue = rowValue;
            [self.navigationController popToViewController:cityVC animated:YES];
            break;
        }
    }
}
于 2012-04-28T18:14:36.900 回答