Xamarin 和 iOS 的新手,所以这可能是一个愚蠢的问题:
基本上,我有一个 UITabBarController、NewGameScreen.cs(带有 NewGameScreen.designer.cs 和 NewGameScreen.xib),作为选项卡之一,我有 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。你调用的对象是空的。
我尝试过改变事物,调用不同的方法序列,但我似乎只能从它所在的类 StatsScreen 中调用 setStats。
我一定是犯了一个致命的错误,像这样更新 UILabel 应该不难。
本质上,我有一个带有 3 个选项卡的选项卡控制器(NewGameScreen)。我希望选项卡控制器管理 3 个子视图(选项卡),因为我需要在 3 个屏幕之间共享数据,并认为拥有一个监督类将是有益的,这样如果我在 NewGameScreen 中设置了一些变量,我可以更新 3 个子视图中的每一个(其中一个是 StatsScreen)。
你会建议我怎么做,我觉得我对 ViewController 系统有误解。
亲切的问候。链接到完整的项目代码
谢谢你的帮助。:)