21

XCode でストーリーボードを設定し、MainViewController を持っています。MainViewController に、別の VIewController でセグエを自然に作成する ContainerView を追加しました。

私のMainViewController.mファイルでデータを設定し、このデータをContainerViewのラベルにリンクしたいのですが、ファイルの所有者をクリックしてこれを行うことができると思っていましたが、現在は2つの異なるビューコントローラーであるため、もちろんできません.

私はこれに苦労しているので、誰かが私を助けてくれませんか。簡単な方法があるに違いないが、私はそれを解読することはできません!

ありがとうございました

4

4 に答える 4

28

他の 2 つのコントローラーと同じように prepareForSegue を使用できます。このメソッドは、2 つのコントローラーがインスタンス化された後、いずれかの viewDidLoad が実行される前に呼び出されます。これを行うもう 1 つの方法は、親コントローラーの childViewControllers プロパティを使用することです (埋め込みコントローラーは子です)。したがって、子は self.childViewControllers[0] になります。

編集後:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"EmbedSegue"]) {
        MyEmbeddedController *embed = segue.destinationViewController;
        embed.labelString = self.stringToPass;
    }
}

もちろん、名前は自分のものに変更する必要があります。IB でセグエに付けた名前が、if ステートメントで確認した名前と一致していることを確認してください。この例では、labelString は組み込みコントローラーで設定した文字列プロパティです。次に、そのコントローラーの viewDidLoad メソッドで、その文字列を使用してラベルの値を設定できます。

于 2013-07-20T15:03:40.313 に答える