2016-12-16 6 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

Ну, из-за причин, почему это не работает. Например, вы зарегистрировали NavigationService в контейнере IoC? Вы всегда должны использовать один и тот же экземпляр, чтобы он работал. – VitaliyK

+0

Да, я только что зарегистрировал NavigationService в контейнере IoC. Может быть ... Я должен использовать другой контроллер? – Mikasa

+0

Я решил, спасибо – Mikasa

ответ

0

Я решил эту ошибку следующим образом:

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

я должен использовать бросок до этой строки кода. Благодарю вас всех