「詳細」ViewControllerをセットアップする最良の方法は何ですか? UILabel を持つ非常に単純な DetailViewController があるとします。APIがあります(これは概念を説明するための疑似コードです):
UpdateLabel(string text)
{
this.label.text=text;
}
したがって、親 ViewController には次のものがあります。
PrepareForSegue(UIStoryboardSegue segue, NSObject sender)
{
base.PrepareForSegue(segue, sender);
DetaiViewController.UpdateLabel("Hello");
}
ただし、ViewDidLoad がまだ呼び出されていないため、詳細ビュー コントローラーで "label" が null であるため、これはクラッシュします。これは、UpdateLabel にこのようなものを追加することで修正できることを知っています
UpdateLabel(string text)
{
this.View.Hidden=this.View.Hidden; // To force view to load
this.label.text=text;
}
しかし、それは非常にハッキーに思えます。
または、UpdateLabel を変更して、文字列のみを保存することもできます。
UpdateLabel(string text)
{
this.textString.text=text;
}
次に、ViewDidLoad でラベルを初期化します。
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.label.text=this.textString;
}
しかし、後で親コントローラーにラベルを変更させたい場合はどうすればよいですか? UpdateLabel を呼び出すと、textString 変数のみが更新され、ラベルは変更されません。
これに対する正しいアプローチは何ですか?