基本Xamarin.iOS屏幕操作



我是Xamarin.iOS编程的新手,如果这很明显,请原谅我。

我有一个在主应用程序中运行的计时器。除其他外,我需要它来更新Main.storyboard 中的字段

在Main.cs:

public static void StartTimer()
{
DateTime startTime;
startTime = DateTime.UtcNow;
var dispatcherTimer = new System.Threading.Timer(DispatcherTimer_Tick, startTime, 0, 100);
}
public static void DispatcherTimer_Tick(object state)
{
GetTime();
ViewController.SetFieldsTick(Vars.dcounter));
}

在ViewController中,我有一个更新屏幕的例程:

public static  void SetFieldsTick(int tick)
{
switch (tick)
{
case 0:     // Display the Time data
{
UTC_Data.Text = Vars.DateStrZ;
}
}
}

如果我声明SetFieldsTick为静态,那么我会得到消息

非静态字段需要对象引用…

用于我尝试更新的每个标签。

如果我不将其声明为静态,那么它可以引用标签,但在Main.cs文件中调用它时,我会收到相同的错误消息。

关于如何解决这个问题有什么建议吗?

谢谢,Dan

我想ViewController不是静态的,这就是为什么你不能像那样从它调用函数,不管怎样,你的代码有点难以理解,如果你想用时钟或只是显示时间来构建一个应用程序,看看这个Xamarin。表单示例:

https://learn.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/data-bindings-to-mvvm

多亏了DataBinding,你不需要手动设置UI,你应该尝试一下。

最新更新