1

ストーリーボードを使用してアプリを構築しています: ここに画像の説明を入力

そして、次のようなものを使用して、「First View Controller」から次のコントローラーにデータを渡すことができることを知っています。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"some_segue"]) {
        vc = segue.destinationViewController;
        vc.data = @"data_i_want_to_pass";
    }
}

しかし、現在、データは「Discover Table View Controller」ではなく「Tab Bar Controller」に渡されています。「First View Controller」から「Discover View Controller」にデータを渡す方法はありますか? ありがとう。

4

2 に答える 2

1
use it :

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"PushToProdct"]) {
        DiscoverViewController *discoverViewController   =   segue.destinationViewController;

        discoverViewController.data=@"Data you want to pass";
    }
}
于 2013-03-21T05:48:08.230 に答える
0

アプリの起動時にデータを渡しても問題ない場合 (これらすべてのコントローラーがインスタンス化され、埋め込みセグエが呼び出されるため)、データをタブ バー コントローラーに渡すことができ、そのコントローラーはそれを渡す必要があります。あなたが望むものに。したがって、タブバーコントローラーをサブクラス化し、質問に表示されているようにデータを渡す必要があります。次に、タブ バー コントローラーで、viewDidLoad に次のようなものを配置できます。

DiscoverViewController *dvc = [(UINavigationController *)self.viewControllers[0] topViewController];
dvc.propIWantToSet =  self.propThatGotSet;

ただし、渡したいデータが起動時にすぐに利用できるようになる可能性は低いと思われます。そうであれば、最初に DiscoverViewController にハード コードするだけで済みます。その場合、FirstViewController では、self.childViewControllers[0] でタブバーコントローラーにアクセスできます。その参照を取得したら、上で示したように DiscoverViewController への参照を取得できます。

于 2013-03-21T06:12:14.393 に答える