4

モデルセグエを使用してタブバーコントローラーを開くタブバーコントローラーの前に1ページ(たとえばX)があります。タブバーコントローラーの最初の画面もXと同じです。

X からタブ バー コントローラーの最初のページにデータを渡したい。

すぐに、ストーリーボード セグエを使用してビュー コントローラーからタブ バー コントローラー ページにデータを渡したいと思います。これには何か方法はありますか?

これが解決策です。

    locationsHome* vc = [[locationsHome alloc] init];
    UITabBarController* tbc = [segue destinationViewController];
    vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];
4

4 に答える 4

9

これが私の問題を解決した方法です。このメソッドを使用して、ViewController から TabBarController にデータを渡すことができます。

prepareForSegueメソッド内でこのコードを使用します

locationsHome* vc = [[locationsHome alloc] init];
UITabBarController* tbc = [segue destinationViewController];
vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];

このような:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    NSString * segueIdentifier = [segue identifier];
    if([segueIdentifier isEqualToString:@"tabbarGo"]){

        locationsHome* vc = [[locationsHome alloc] init];
        UITabBarController* tbc = [segue destinationViewController];
        vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];

        etc...

    }
}
于 2012-10-01T07:14:22.693 に答える
2
//if sent to First Tab of Tab Bar Controller
UITabBarController *tabBarController = segue.destinationViewController;
UINavigationController *navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:0];
createTeamViewController *controller = (createTeamViewController *)[[navigationController viewControllers] objectAtIndex:0];

controller.userProfile = self.userProfile;
于 2013-07-24T07:01:54.210 に答える
0

宛先ビュー コントローラー (サブクラス化されたタブ バー コントローラー) にプロパティを追加し、ソース ビュー コントローラーで、prepareForSegue情報を宛先コントローラーに渡すように実装します。viewDidLoad次に、ソース ビュー コントローラーで渡されたデータに基づいて、宛先ビュー コントローラーを動作させることがprepareForSegueできます。

于 2012-09-29T12:33:11.500 に答える