2012-04-28 7 views
0

...NavigationController(またはどのように私は...説明しなければならない)

私のシナリオは以下のとおりです。 メインリストは国です。セルの1つをタップすると、新しいUITableViewで表示される、その国のいくつかの都市を提供します。この部分は十分にシンプルですが、「深く」を追加すると、どうやって理解するのか分かりません。( ホテル、レストラン、バーなどの他の選択肢もあります。 タップレストランでは、fx 。。あなたは高速パスを見ると、食品のスタイル、ファーストフード、メキシコ、インド、地元 に、それができる: 国別>シティ - >レストラン - > FastFood->マクドナルド今

、最も難しい部分は、ありますそれは壊してしまうことが

! - 私は、書面またはYouTubeのいずれかで、良いチュートリアルを知って誰です

(市)マクドナルド値を保存し、バックVIEW2にそれを持って帰りたいと思います

ありがとうございます:)

答えて

0

ここでこれを行う方法があります。まず、そののViewControllerのプロパティを設定し、あなたのシティビューコントローラのプロパティが次にselectedValue

@property (nonatomic, strong) NSString *selectedValue; 

と呼ばれ、値があなたの最後のレベルtableViewControllerに選択されている場合、あなたUINavigationControllerのナビゲーションスタックに市のViewControllerを見つける作成し、合成しますそのviewControllerにnavスタックをポップします。あなたの最後のレベルでそう

あなたのコードは次のようになりますの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; 
     } 
    } 
} 
関連する問題