2016-07-04 1 views
1

MvvmCross-Forms 응용 프로그램의 로그인 페이지를 구현하려고합니다. 응용 프로그램이 시작되면 로그인하지 않은 경우 로그인 화면이 표시되고 사용자가 로그인하지 않은 경우 홈 페이지로 이동해야합니다. 사용자는 로그인 할 때 홈 페이지로 이동하고 홈 페이지에서 로그 아웃하면 로그인 페이지로 이동합니다. 꽤 표준적인 것들 - 인증 기능을 가진 앱에서 기대할 수있는 것.Xamarin의 로그인 페이지 MvvmCross-Forms - Android에서 뒤로 탐색을 방지합니다.

MvvmCross ViewModel 탐색을 사용하여 구현했지만 모든 탐색을 통해 Android의 제목 표시 줄에서 '뒤로'버튼을 누르거나 하드웨어 뒤로 버튼을 사용할 수 있습니다. 사용자로서 'root'페이지로 로그인 한 후 홈 페이지를 기대하고 로그 아웃을 명시 적으로 선택하여 로그인 화면으로 돌아갈 수 있습니다.

Xamarin Forms에서 이것을 수행하는 일반적인 방법은 Show()에 대한 호출을 가로 채고 홈 페이지 또는 로그인 페이지에 대한 탐색에서 백 스택을 지우는 Droid 프로젝트 아래에 사용자 정의 Page Presenter를 만드는 것입니다. 예를 들어 Xamarin MvvmCross Android Prevent Back Button returning to previous View에 대한 맨 위로 대답). 그러나 MvvmCross-Forms가 의도적으로이 기능을 구현하지 못하게하는 것 같습니다. MvxFormsDroidPagePresenter 클래스는 android-specific MvxAndroidViewPresenter 대신 플랫폼 간 에서 상속받습니다.

두 가지 옵션이 있습니다. 하나의 ViewModel/View를 로그인 용으로 사용하고 홈 페이지를 사용하거나 MvxAndroidViewPresenter 기능 중 일부를 추출하여 내 자신의 맞춤형 Android 발표자에게 제출하십시오. 이 동작은 MvvmCross-Forms에서 어떻게 관용적으로 구현됩니까?

+0

https://github.com/conceptdev/xamarin-forms-samples/tree/master/LoginDemo를 사용해보세요. – Vishnu

답변

0

접근 방식이 잘못되었습니다. 당신이하고 싶은 것은 홈 페이지를 루트로 설정 한 후 바로 로그인 페이지에 대한 ModalPush를 실행합니다. 사용자가 로그인하지 않은 경우에 대비하여 ModalPop을 실행하고 홈 페이지 인 루트로 돌아갑니다.

사용자가 로그인 한 경우, 루트가되는 위치 (홈 페이지)가 루트 인 경우입니다.

희망이 도움이됩니다.

관련 문제