在MonoTouch中在viewcontrollers(缓存数据)之间传递数据的最佳方法

时间:2013-04-05 08:29:01

标签: c# ios coding-style xamarin.ios xamarin

所以我重写了我之前用objective-c编写过的应用程序。在objective-c中,我将数据(5个数组)存储在单独的NSUserdefaults中,然后在新的ViewController中调用它们。

自从我开始使用MonoTouch进行编程以来,这感觉有点不对劲。我现在也使用共享代码,并创建了一个获取数据的类。让我解释一下我的应用程序如何工作:

  1. 用户在文本字段中输入数字。
  2. 现在将此号码发送给将获取数据并对其进行过滤的类。如果完成它将返回5个数组/列表。
  3. 现在我不得不保存或传递数据并推送到下一个ViewController,数据将以标签显示。
  4. 那么解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

对ViewController进行子类化,在数据的构造函数上添加一些新参数,以便在显示时将数据传递给控制器​​。

public class MyViewController : UIViewController
{
    private MyData _myData;

    public MyViewController(MyData myData)
    {
        _myData = myData;
    }
}

然后使用它:

(假设我们已经在另一个具有NavigationController的视图控制器中):

var myViewController = new MyViewController(myData);
this.NavigationController.PushViewController(myViewController, true);

或(作为“模态”)

var myViewController = new MyViewController(myData);
this.PresentViewController(myViewController, true);