0

UITableViewController を詳細に作成する方法の高度なチュートリアルを検索しました...

私のシナリオは次のとおりです。メインリストは国です。セルの 1 つをタップすると、その国のいくつかの都市が表示され、新しい UITableView に表示されます。この部分は十分に単純ですが、「より深く」追加すると、どうすればよいか理解できません :( 都市には、ホテル、レストラン、バーなどの他のオプションがあるとしましょう。レストランをタップすると、再び fx.food の新しいオプションが表示されます。 style, FastFood, Mexican, Indian, local. ファスト パスを見ると、次のようになります: 国 -> 都市 -> レストラン -> ファストフード -> マクドナルド

ここで、最も難しい部分は、マクドナルドの値を保存して、view2 (City) に戻したいことです。

書かれた、またはYoutubeのいずれかで、優れたチュートリアルを知っている人はいますか?

前もって感謝します :)

4

1 に答える 1

0

これを行う方法は次のとおりです。最初に、City View Controller と呼ばれるプロパティを作成して合成しますselectedValue

@property (nonatomic, strong) NSString *selectedValue;

次に、最後のレベルの tableViewController で値が選択されたら、UINavigationController のナビゲーション スタックで City ビューコントローラーを見つけ、そのビューコントローラーでプロパティを設定し、ナビゲーション スタックをそのビューコントローラーにポップします。

したがって、最後のレベルの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 に答える