1

に私はのUITableViewControllerで正しくリストXMLパーサを作ってきました。 MKMapビューには、いくつかの細部を渡し、緯度と経度も渡します。最初は私のセットアップはUITableViewControllerからDetailViewControllerに直接行っていましたが、これは完全に機能しました。リスト内のその選択されたオプションのXMLから適切な詳細が表示されます。のUITableViewController UITabBarControllerのDetailViewController

現在の設定:

Navigation Controller > Table View > Detail View Controller 

が、私は少しだけ全体のストーリーボードを再配置します。直接DetailViewControllerに行くのではなく、Tab Viewに送ることができます。

新しいセットアップ:

Navigation Controller > Table View > Tab Bar Controller - Detail View Controller 1 
                 |_ Detail View Controller 2 

タブバーコントローラに渡されたテーブルビューからのデータではなく、詳細ビューコントローラへの私のNSLogによると、詳細にそのデータを持ち上げるために、とにかく可能ですコントローラを表示しますか?

エラーや警告は表示されません。しかし、ここでのコードからいくつか抜粋です:

これは、表ビューコントローラである、それは次のコントローラにセグエから適切なデータを送信します。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if([[segue identifier] isEqualToString:@"StadionDetail"]) { 
    StadionDetailViewController *detailViewController = [segue destinationViewController]; 
    NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow]; 
    detailViewController.theList = [app.listArray objectAtIndex:[myIndexPath row]]; 
    } 
} 

次に、TabViewControllerはそのデータを正しく受信しますが、そのデータを詳細表示コントローラに持ち上げることはありません。

答えて

2

あなたがUITabBarControllerをプッシュする場合は、そのviewControllersをループしており、それぞれのViewControllerにデータを割り当てます。このような

何か:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if([[segue identifier] isEqualToString:@"MyTabBarController"]) { 
     UITabBarController *tabBarController = [segue destinationViewController]; 
     for (MyFancyViewController *vc in [tabBarController viewControllers]) { 
      vc.data = ... 
     } 
    } 
} 
+0

ありがとう!それはうまくいった。 – user1297622

関連する問題