我如何使用一个ViewController到另一个ViewController的数据来扩展第一个ViewController的信息?

时间:2019-03-28 19:04:09

标签: c# storyboard viewcontroller

我使用一个View Controller编写了一个简单的Golf Scoring程序。一切正常。我需要第二个VC才能显示玩家之间的比赛结果(第一个VC上没有足够的空间)。如何避免从第一个VC获取Null值?

我尝试使用相同类的第一个View Controller,但是收到Delegate错误。 我需要第二个VC继承第一个VC的数组的值。

1 个答案:

答案 0 :(得分:0)

我假设这是一个Xamarin.iOS项目。您如何到达第二个VC(UINavigationController ..?)。一种简单的方法(还假设有UINavigationController)是在SecondVC中创建以下内容

public int[] values;

然后在第一个VC中,您可以创建SecondVC,更新values数组,并在values数组更新后执行其他必要的逻辑。

public OnNavigateToSecondVC() {
    var secondVC = new SecondVC();
    secondVC.values = values; // Reference to values array from first VC

    NavigationController?.PushViewController(secondVC, true);
}

另一种方法是更新secondVC的构造函数,使其具有直接将values数组传递进去的功能。

public partial class SecondVC : UIViewController
{
    int[] values;

    public SecondVC(int[] values) : base("SecondVC", null)
    {
        this.values = values;
    }

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        // Perform any additional setup after loading the view, typically from a nib.
    }

    public override void DidReceiveMemoryWarning()
    {
        base.DidReceiveMemoryWarning();
        // Release any cached data, images, etc that aren't in use.
    }
}

Swift也具有本机功能:PrepareForSegue

如果需要,也可以使用它:Prepare for Segue in Swift