2016-12-16 44 views
0

我是新手。我通過從一個UIViewController一個參數傳遞給另一個使用此方法:iOS Xamarin MVVM Light - GetAndRemoveParameter()方法

FirstViewController:

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

後,我想獲得我的參數:

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

但參數結果爲空。我在哪裏犯錯誤?我怎樣才能得到我的參數?

+0

很好很多原因爲什麼這是行不通的。例如,您是否在IoC容器中註冊了NavigationService?你應該總是使用相同的實例來使它工作。 – VitaliyK

+0

是的,我剛剛在IoC容器中註冊了NavigationService。也許..我必須使用不同的控制器嗎? – Mikasa

+0

我解決了,謝謝 – Mikasa

回答

0

我以這種方式解決了這個錯誤:

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

我必須在此行代碼之前,使用一個演員。 謝謝大家