如何在 Xamarin.mac Cocoa 应用程序中通过 segue 在视图之间传递数据?

How can I pass data between views via segue in a Xamarin.mac Cocoa app?

我正在使用 [= 在 C# 中开发 Xamarin.Mac Cocoa 应用程序27=] 对于 Mac.

我想将一个对象从我的第一个视图控制器传递到下一个视图控制器。我有一个名为 LaunchSecondView 的 segue,用于启动第二个视图。我需要第二个视图中第一个视图的对象 class Person

首先,您需要在第二个视图控制器中设置 public 属性 :

public Person MainPerson { get; set; }

您需要覆盖名为 PrepareForSegue 的方法。在其中,您可以确定目标控制器(您的第二个视图),如果您有多个 segue,最好使用 switch case 语句。

public override void PrepareForSegue(NSStoryboardSegue segue, NSObject sender)
{
    base.PrepareForSegue(segue, sender);

    switch (segue.Identifier)
    {
        case "LaunchSecondView":
            {
                SecondViewClass target = segue.DestinationController as SecondViewClass;
                target.Person = CurrentPerson;
            }
            break;
    }
}