2016-12-16 4 views
0

Ich bin ein Neuling. Ich gehe einen Parameter von einem UIViewController zum anderen mit dieser Methode:iOS Xamarin MVVM Light - GetAndRemoveParameter() -Methode

FirstViewController:

string parameter = "test"; 
var navigation = ServiceLocator.Current.GetInstance<INavigationService>(); 
navigation.NavigateTo("SecondViewController", parameter); 

Und nachdem ich möchte meine Parameter erhalten:

SecondViewController:

var nav = new NavigationService().Initialize(NavigationController); 
UIViewController controller = nav.NavigationController.TopViewController ; //The UIKit.UIViewController that was navigated to 
string param = (String)nav.GetAndRemoveParameter(controller); 

Aber das Parameterergebnis ist null. Wo mache ich Fehler? Wie kann ich meinen Parameter erhalten?

+0

Nun, viele Gründe, warum dies nicht funktioniert. Haben Sie NavigationService beispielsweise in einem IoC-Container registriert? Sie sollten immer die gleiche Instanz verwenden, damit es funktioniert. – VitaliyK

+0

Ja, ich habe den NavigationService gerade im IoC-Container registriert. Vielleicht ... Muss ich einen anderen Controller verwenden? – Mikasa

+0

habe ich gelöst, danke – Mikasa

Antwort

0

Ich löste diesen Fehler auf diese Weise:

var navigation = (NavigationService)ServiceLocator.Current.GetInstance<INavigationService>(); 

Ich muss eine Besetzung vor dieser Zeile Code zu verwenden. Vielen Dank alle