我使用一个View Controller编写了一个简单的Golf Scoring程序。一切正常。我需要第二个VC才能显示玩家之间的比赛结果(第一个VC上没有足够的空间)。如何避免从第一个VC获取Null值?
我尝试使用相同类的第一个View Controller,但是收到Delegate错误。 我需要第二个VC继承第一个VC的数组的值。
答案 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