我正在尝试做一些非常简单的事情,但我无法弄清楚为什么它不起作用。在我的MonoDevelop项目中,我有一个iPhone应用程序。我有两种不同的看法。每个视图都包含一个UITable。对于视图1,我将类1连接到UITable作为数据源1.对于视图2,我将类2连接为数据源2.两个类(即数据源)都为表提供数据。 View 2也有一个自定义单元格,因此加载异步。
我使用linq到xml从2个xml文件中获取数据。一切正常,数据加载很好。我需要知道的是根据View 1中的选择在Datasource 2中加载数据。为此,我需要将ID从视图1传递给Class(Datasource)2。问题。
我已经尝试过我所知道的一切,但我无法做到。
根据我的正确解决方案:
我创建了另一个名为SelectedRound的类,它有两个属性。代码:
使用System;
namespace xxxxx
{
public class SelectedRound
{
public string RoundID { get; set; }
public string Date { get; set; }
}
}
当我在类1中设置RoundID时,我可以在类1中访问它。尝试在类2中访问它但是,不返回任何内容或返回null。为什么会这样?可能是因为Class(Datasource)2是异步加载的吗?我应该以某种全局方式实例化SelectedRound类吗?如果是这样的话? AppDelegate可能吗? (努力做到这一点)
任何帮助都可以。对于我来说,试图设置并获得一个简单的字符串变量似乎没有意义。
提前致谢。 Ĵ
答案 0 :(得分:1)
这感觉就像你将SelectedRound实例从第一个视图传递到第二个视图一样。
作为一种非常快速和肮脏的解决方案,您可以使用单例或只使用静态类:
public static class SelectedRound
{
public static string RoundID {get;set;}
public static string Date {get;set;}
}
对于更复杂的模式,然后尝试覆盖两个视图控制器中的一个或两个的构造函数,以便为它们传递非静态类的共享实例。
视图控制器现在可能对你感到陌生 - 但它们只是c#类 - 所以可以通过编写覆盖,新方法和属性来扩展它们。