1

在我的 MonoDevelop 项目中,我有一个 iPhone 应用程序。我有两种不同的看法。每个视图都包含一个 UITable。对于视图 1,我将类 1 作为数据源 1 连接到 UITable。对于视图 2,我将类 2 作为数据源 2。两个类(即数据源)都为表提供数据。View 2 也有一个自定义单元格,因此加载是异步的。

我使用 linq to XML 从 2 个 XML 文件中获取数据。一切正常,数据加载良好。我需要知道的是根据视图 1 中的选择加载数据源 2 中的数据。为此,我需要将视图 1 中的 ID 传递给类(数据源)2。问题。

我已经尝试了我所知道的几乎所有东西,但我就是做不好。

根据我的正确解决方案:

我创建了另一个名为 SelectedRound 的类,它有两个属性。代码:

using 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 也许?(我也在努力做到这一点)。

对我来说,设置和获取一个简单的字符串变量很困难,这似乎毫无意义。

4

1 回答 1

1

这感觉就像您如何将 SelectedRound 实例从第一个视图传递到第二个视图一样。

作为一个非常快速和肮脏的解决方案,您可以只使用单例,也可以只使用静态类:

public static class SelectedRound
{
    public static string RoundID {get;set;}
    public static string Date {get;set;}
}

对于更复杂的模式,然后尝试覆盖两个视图控制器中的一个或两个的构造函数,以便向它们传递非静态类的共享实例。

视图控制器现在对你来说可能感觉很陌生——但它们只是 c# 类——所以请随意通过编写覆盖、新方法和属性来扩展它们。

于 2012-05-28T06:52:54.390 回答