2012-09-07 21 views
4

我有表源類和行單擊我正在調用下面的函數移動到另一個控制器,但我想傳遞一些數據。如何在單點觸摸中傳遞PerformSegue的數據

controller.PerformSegue("backtorootviewsague",controller); 

有沒有人知道我該如何實現它。我是monotouch和ios的新成員。我無法弄清楚如何實現這一點。

回答

9

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的行動。

希望有所幫助。

+0

非常感謝你這是非常有用的。但我保持這個錯誤。我遵循完全相同的方式。 '[錯誤]致命未處理異常:System.InvalidCastException:無法從源類型轉換爲目標類型。「# – Akrambek

+0

您能調試並查看它崩潰的位置嗎? –

+0

但我怎麼能做到這一點,如果我在表源類 – Akrambek