2017-05-01 4 views
0

정상적인 창에서 팝업보기를 사용할 수있는 응용 프로그램이 있습니다. 사용자가 로그인해야하는 데이터를 얻기 위해 토큰이 있습니다. 토큰이 없으면 처음에는보기를 표시 한 다음 어디로 향하고 있습니까? MvvmCross 추가보기 전의보기 표시

은 더 명확하게하려면

public void Init() 
{ 
    if (!CheckToken()) 
    { 
     Task.Run(() => ShowViewModel<InsertPasswordViewModel>()) 
        .ContinueWith(t => GetData()); 
    } 
    else 
    { 
     //Do your thing 
     GetData(); 
    } 
} 

문제는 이제 작업이 즉시보기가 표시되도록 실행된다는 점이다 GetData의 시작하지만 그는 더 토큰과 충돌이 없습니다.

어떤 아이디어 또는 수정 당신은 Init에서 탐색을하지 말아야

답변

1

환영합니다. 당신은 본질적으로 네비게이션 중간에있는 페이지에서 벗어나 있습니다. Init이 호출되면 탐색이 완료되지 않습니다.

ShowViewModel에서 결과를 얻지 못하기 때문에 InsertPasswordViewModel의 모든 작업을 완료했을 때 아무것도 반환하지 않는 것에 의지 할 수 없습니다.

아마도 당신이 어디에서 왔는지 알려주는 매개 변수와 함께 ViewModel으로 이동하고 있습니다. 그런 다음 InsertPasswordViewModel에서 암호가 정상이면 다시 돌아 가기 위해 해당 매개 변수를 사용하십시오. 사용자 지정 발표자와 프레젠테이션 힌트 집합을 통해 수행 할 수있는보기 계층 구조를 수정하려고 할 수도 있습니다.

+0

안녕하세요 Cheesbaron, 분명한 답변을 보내 주셔서 감사합니다. init을 통해 탐색하는 것을 방지하고 있지만 다른보기에서는 작업과 함께 작동하지 않습니다. Delay. MvxBundle에 대한 경험이 적지 만 더 많이 사용해야한다고 생각합니다. –

+0

MvxRequestedBy 예제를 어디에서 찾을 수 있습니까? –

+0

그냥 enum입니다. 그것은 아무데도 사용되지 않으며 5.x에서 제거되었습니다. 그냥 무엇이든 설정하십시오. – Cheesebaron