2016-03-20 11 views
0

私はこのような状況を持っている:コンテナビューのビューが読み込まれるまで待つ方法は?

私はコンテナビューを持っているUIViewControllerVC1を持っています。 VC2 - このコンテナビューは、別のUIViewControllerを保持しています。私はVC2、それはIBOutlet sとVC2に接続されているいくつかのラベルのテキストを更新した後にプロパティを設定する必要があります。私は、 "segueToVC2"という識別子でストーリーボードで作成したセグを実行してVC2にアクセスできます。 VC1 - PROPERTY1のプロパティが設定された後、performSegueWithIdentifierメソッドを呼び出します。つまり、PROPERTY1のdidSetメソッドでperformSegueWithIdentifierを呼び出します。問題は、コンテナビューで保持されているVC2のビューがまだロードされておらず、VC2に接続しているIBOutletsがすべてゼロであることです。これは、私のアプリがクラッシュする原因になります。

この問題を解決するにはどうすればよいですか?

ありがとうございます。

+0

ストーリーボードにコンテナビューを設定した場合、VC2を手動で 'performSegue'を呼び出さずに単に' prepareForSegue'でセットアップすることができます。 –

答えて

0

[OK]を、私は私がVC1を扱ってきたのと同じ方法で問題を解決するために管理してきました: 私はAppDelegateから直接VC2の必要なプロパティを設定して、すべてがうまく働きました。

0

私はIBOutletsが何であるかわからないんだけど、まだObjective-Cのプログラムされていません。 また、VC2がコンテナビューに含まれているとお伝えしているので、なぜperformSegueWithIdentifierを使用する必要があるのか​​よくわかりません。

埋め込みセグエを用いVC2にVC1リンクにおけるコンテナビュー。 あなたはprepareForSegueにVC2のコピーになるだろうし、あなたのviewDidLoadまたはviewWillAppearであなたはVC2のプロパティを設定することができます。

これは私がXamarin.iOSでやっている方法です。 幸運。

0

あなたはviewDidLoad方法でVC2でIBOutletsのプロパティ(テキスト、色など)を設定する必要があります。これらの値をVC1から設定するには、VC1からVC2に渡すデータを保持するためにVC2にいくつかのプロパティを作成する必要があります。次に、VC1の 'prepareForSegue'メソッドで、VC2で必要なプロパティを設定します。そして、VC2 viewDidLoadでこれらのプロパティを使用してIBOutletsを更新します。