我有表源类,在行上点击我调用下面的函数移动到另一个控制器,但我想传递一些数据。
controller.PerformSegue("backtorootviewsague",controller);
有谁知道如何实现它。我是monotouch和ios的新手。我无法弄清楚如何实现这一目标。
答案 0 :(得分:11)
PrepareForSegue
是正确的选择。例如,如果创建的控制器
CustomerViewController
被称为CustomerListViewController
,在CustomerListViewController
中覆盖该方法,如下所示:
public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
{
base.PrepareForSegue (segue, sender);
// do first a control on the Identifier for your segue
if (segue.Identifier.Equals("your_identifier")) {
var viewController = (CustomerViewController)segue.DestinationViewController;
viewController.MyData = dataToInject;
}
}
其中CustomerViewController
具有如下公共属性:
public SomeTypeData MyData { get; set; }
您可以在Xamarin samples中看到这一点。
希望有所帮助。
答案 1 :(得分:0)
我这样做了:(Visual Studio / Xamarin-iOS / C#)
public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender)
{
base.PrepareForSegue(segue, sender);
if (segue.Identifier.Equals("my Segue ID"))
{
var viewController = (MyDestinationViewController)segue.DestinationViewController;
viewController.selectedItemInDestinationController = selectedControlStringFromViewController;
}
}
执行Segue:
this.PerformSegue("my segue ID", this);
在目标ViewController上,添加:
public string selectedControlName;
protected ControlShowController(IntPtr handle) : base(handle)
{
}