【问题标题】:How can I use the data from one ViewController to another in order to expand the first ViewController's information?如何使用从一个 ViewController 到另一个 ViewController 的数据来扩展第一个 ViewController 的信息?
【发布时间】:2019-08-19 16:01:50
【问题描述】:

我使用一个视图控制器编写了一个简单的高尔夫计分程序。一切都很好。我需要第二个 VC 来显示玩家之间的比赛结果(第一个 VC 没有足够的空间)。如何避免从第一个 VC 获取 Null 值?

我尝试使用同一个类的第一个视图控制器,但收到委托错误。 我需要第二个 VC 来继承第一个 VC 的数组的值。

【问题讨论】:

  • 我已经通过正确使用 segue 解决了这个问题......谢谢

标签: c# storyboard viewcontroller


【解决方案1】:

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

public int[] values;

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

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

    NavigationController?.PushViewController(secondVC, true);
}

另一种方法是更新 secondVC 的构造函数,使其包含直接传递值数组的能力。

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

【讨论】:

  • Prepare for Segue in Swift 对我有用。感谢您的帮助!
  • 部分答案:“我假设这是一个 Xamarin.iOS 项目。” ;是的,但我已经使用 Xcode swift 完全重写了整个项目。从现在开始,我为 ios 编写的所有内容都将在 Xcode 中。再次感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 2020-11-16
相关资源
最近更新 更多