5

我有表源类,在行单击时,我正在调用下面的函数以移动到另一个控制器,但我想传递一些数据。

controller.PerformSegue("backtorootviewsague",controller);

有谁知道我怎样才能实现它。我是monotouch和ios的新手。我无法弄清楚如何实现这一目标。

4

2 回答 2

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;
    }
}

whereCustomerViewController具有如下公共属性:

public SomeTypeData MyData { get; set; }

您可以在Xamarin 示例中看到这一点。

希望有帮助。

于 2012-09-07T17:23:37.067 回答
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;
            }
        }

执行转场:

this.PerformSegue("my segue ID", this);

在目标 ViewController 上,添加:

public string selectedControlName;

protected ControlShowController(IntPtr handle) : base(handle)
{

}
于 2018-04-27T11:15:09.800 回答