4

私が呼び出すと、目的のView Controllerにいくつかのプロパティを設定するために、後でperformSegueWithIdentifier:オーバーライドしています。prepareForSegue:ただし、安全であることを確認するために、ここで操作の順序を理解しようとしています。

次のコマンドを使用して、宛先ビュー コントローラーをインスタンス化します。

MyViewController *myVC = (MyViewController*)segue.destinationViewController;

その後、いくつかのプロパティを設定します。つまり、さまざまな Web ビューの読み込みを処理する別のオブジェクトの作成を初期化し、そのオブジェクトにプロパティを設定します。

[myVC setFormHandler:
    [[WebFormHandler alloc] initWithSelectedFormName:[self theFormName]]];

viewDidLoad:次に、宛先コントローラーで、このオブジェクトのプロパティをクエリし、これを使用して正しい Web ビューを読み込みます。viewDidLoad:ここで、どちらが最初に発生するか、プロパティの設定、または宛先コントローラーで少し混乱しています。ビュー コントローラのプロパティは、が呼び出されるprepareForSegue:前から常に設定されると断言できますか?viewDidLoad:

4

1 に答える 1

3

他の投稿から回答を見つけたようですが、明確にするために 1 つの点を追加したかっただけです。

標準的な流れは

performSegue -> prepare -> loadView (宛先コントローラー内)

ただし、ポップオーバー セグエでは、prepareForSegue 呼び出しの前に宛先ビューが読み込まれます。

: これは、iOS 8 には当てはまりません。iOS 8 では、prepareForSegue が呼び出されるまでに、ポップオーバー セグエのビューは読み込まれません。

于 2012-09-19T16:10:55.287 に答える