Xamarin と iOS の新機能なので、これはばかげた質問かもしれません。
基本的に、UITabBarController、NewGameScreen.cs (NewGameScreen.designer.cs および NewGameScreen.xib を使用) があり、タブの 1 つとして StatsScreen.cs (StatsScreen.designer.cs および StatsScreen.xib を使用) があります。StatsScreen には、NewGameScreen から変更したいラベルがいくつかあるため、新しい StatsScreen オブジェクトを作成しました。
StatsScreen stats = new StatsScreen ();
次に、メソッドを次のように呼び出します。
stats.setStats (day, debt, money, bank, health, location); // All of the parameters here are local variables
メソッドは次のようになります。
public void setStats (int day, long debt, long money, long bank, int health, string location)
{
LabelDay.Text = day.ToString ();
LabelDebt.Text = debt.ToString ();
LabelMoney.Text = money.ToString ();
LabelBank.Text = bank.ToString ();
LabelHealth.Text = health.ToString ();
LabelLocation.Text = location;
}
実行してクリックすると、次のようになります。
System.NullReferenceException がスローされました。オブジェクト参照がオブジェクト インスタンスに設定されていません。
メソッドのさまざまなシーケンスを呼び出して、物事を変更しようとしましたが、setStats は、それが存在するクラスである StatsScreen 内からしか呼び出すことができないようです。
このように UILabel を更新するのは難しくないはずです。
基本的に、3 つのタブを含むタブ コントローラー (NewGameScreen) があります。3 つの画面間でデータを共有する必要があるため、タブ コントローラーで 3 つのサブビュー (タブ) を管理する必要があり、監督クラスを持つことは有益であると考えました。 NewGameScreen にいくつかの変数を設定すると、3 つのサブビュー (そのうちの 1 つは StatsScreen) のそれぞれを更新できます。
ViewController システムを誤解しているように感じます。
助けてくれてありがとう。:)