2013-05-29 3 views
1

나는 을 포함하는 HomeViewModelTabParPresenter으로 만들었습니다. 이것은 잘 작동하고 ViewModel이 연결된 View은 해당 탭에 올바르게 표시됩니다. 그러나 ViewModel에는 ctor에 몇 가지 조건이 적용될 때이를 알려주는 체크가 있습니다. SettingsViewModel으로 이동해야하며 HomeViewModel에 포함 된 ViewModel의 일부가 아닙니다. 네비게이션 이벤트는 TabBarPresenterHost에 의해 잡히게됩니다. 이는 응용 프로그램의 Presenter이며, TabBarPresenter이 있고 null이 아닌 경우 TabBarPresenter.ShowView() 메서드로 전달됩니다. 이 모든 일은 TabBarPresenter로드가 완료되고 SelectedViewControllerViewDidLoad으로 설정되기 전에 발생합니다. 따라서 TabBarPresenterSelectedViewController을 사용하여 새 View을 푸시합니다. 분명히 Null Reference Exception이 표시됩니다.TabBarPresenter를 사용한 ViewModel 탐색

한마디로

내가 원하는 것은 그런 다음

if (conditionForShowingHome == true) 
    GoToHome(); 
else 
    GoToSettings(); 

SettingsViewModel 안에 당신이 HomeViewModel로 돌아 돌아갈 때 필요한 물건을 설정 한 경우.

View로드가 완료되고로드가 완료되기 전에 네비게이션 이벤트가 실행되기 전에 ViewModel이로드된다는 점이 무엇입니까? 이 아이디어를 어떻게 해결할 수 있을까요?

+0

에 몇 가지 메모를 참조하십시오. – Cheesebaron

답변

1

이 코드를 ViewModel 생성자에 넣으면 문제가 발생할 수 있습니다.

탐색 중에 ViewModel 생성자가 호출되며 모든 플랫폼이 기존 탐색이 진행중인 동안 새 탐색 시작을 지원하지는 않습니다.

이 문제를 해결하려면 탐색 전에 코드에서 이러한 유형의 동작을 직접 적용하는 것이 좋습니다.

  • 일반적인 탐색의 경우 MvxCommand 실행 핸들러로 이동할 수 있습니다. 응용 프로그램 시작의 경우

  • , 나는 사용자 정의 응용 프로그램 시작에서이 작업을 수행 - 어쩌면 나는 TabBarController가 Cirrious 회의 샘플에서 찢어 것을 추가해야 https://speakerdeck.com/cirrious/appstart-in-mvvmcross

+0

필자는 나를 위해 작동하는 사용자 지정 응용 프로그램 시작을 수행하여 Android 및 WP7에서 수행해야 할 작업을 조사해야합니다. – Cheesebaron

관련 문제