프리즘 템플릿 패키지 (2.0.7)로 만든 프리즘 Xamarin.Forms 응용 프로그램이 있습니다. 모든 패키지는 최신 상태 :서비스 내에서 프리즘 내비게이션
- Xamarin.Forms v2.5.0.91635
- Xamarin.Android * v26.1.0.1
- Prism.DryIoc.Forms v7.0.0.168 사전. 내가 https://github.com/dernippel/PrismNavApp 에 샘플 애플리케이션을 호스팅
(시작시,하지만 내 주요 응용 프로그램이 해당 문제없이 269 미리를 사용으로 인해 안드로이드 렌더러에 NullReferenceException이에 v7.0.0.269 사전에 업데이트 할 수 없습니다),363,210
나는 다음과 같은 구성 요소가 있습니다 인터페이스로 사용하여 컨테이너에 등록
- 모듈 "첨부 파일"(프리즘 모듈)
- 모듈 "뷰어"(프리즘 모듈)
- 서비스 "AttachmentService을" 싱글
그들은이 작업을 수행해야합니다
- AttachmentsPage을 (첨부에서 mentsModule)는
- 는
- AttachmentPageViewModel는
- 방법은 유형에 따라 올바른 ViewerPage을 결정하는 첨부 파일 서비스의 "OpenAttachment"-Method를 호출하고 (페이지로 직접 이동합니다 프리즘 - NavigationService를 사용하여 하나 개의 첨부 파일을 선택하면 일부 개체를 나열 샘플이는 ViewerModule의 "ImageViewerPage은")입니다
다음 탐색 할 경우에만 작동 :
M을 ainPage -> AttachmentsPage -> ViewerPage -> (뒤로 화살표) AttachmentsPage -> ViewerPage (등)
하지만 ViewerPage에 대한 탐색을 MainPage 다시 이동하면 더 이상 작동하지 않습니다 :
MainPage -> AttachmentsPage -> ViewerPage -> (뒤로 화살표) AttachmentsPage -> (뒤로 화살표) MainPage -> AttachmentsPage -> (버튼에 탭이 ViewerPage를 탐색 할 때 아무것도 더 이상 발생하지 않습니다)
AttachmentsService는 NavigationService를 가져옵니다 생성자 주입과 n을 통해
public AttachmentService(INavigationService navigationService)
{
this.navigationService = navigationService;
}
public async void OpenAttachmentWithViewer(object attachment)
{
// ToDo: handle parameter proberbly
var attachmentType = "image";
// select correct viewer
if (attachmentType == "image")
{
// navigate to image viewer
var navParams = new NavigationParameters();
navParams.Add("object",attachment);
var navTask = this.navigationService.NavigateAsync(
"ImageViewerPage",
navParams,
useModalNavigation: false);
await navTask;
var result = navTask.Status;
Debug.WriteLine($"Navigation State is {result}");
}
}
내비게이션 작업 결과 상태를 확인하려고했는데 항상 "RanToCompletion"입니다.
private void OnOpenAttachment()
{
// ToDo: get the selected attachment
object selectedAttachment = null;
// navigating inside a service -- not working when navigating back to MainPage
//this.attachmentService.OpenAttachmentWithViewer(selectedAttachment);
// navigation from view model -- working
var navParams = new NavigationParameters();
navParams.Add("object", selectedAttachment);
this.navigationService.NavigateAsync("ImageViewerPage", navParams, useModalNavigation: false);
}
힌트 : 프리즘 NavigationService 대신이 문제가 발생하지 않는 서비스를 사용하여 직접 탐색 할 AttachmentsPageViewModel 수정
내가에서 내 홈페이지 - 응용 프로그램으로 전환 새로운 .NETStandard에 PCL는 기반 Prism v6.3.0.1을 사용하여 성공적으로 유사한 기능을 수행했습니다. 이 기능은 포트 이후로 한 번만 탐색 할 수도 있습니다.사실이 문제를 해결하는 방법을 모르겠습니다.
프리즘 NavigationService를 살펴보고 탐색이 발생하지 않는 이유를 알아낼 수 있습니까?
아직 프리즘 저장소에 알려진 버그를 찾지 못했습니다.
빠른 답변 주셔서 감사합니다. Prism 6이 적용된 이전 PCL 기반 앱은 Navigation Service (App.xam.cs에 등록 된 navigation-call을 포함하는 명령) 내의 CompositeCommands에 사용됩니다. 나도이게 나쁘다고 생각해? Btw : 저는 프리즘을 정말 좋아합니다. ;) –