【发布时间】:2019-06-02 19:59:23
【问题描述】:
我有一个使用 Prism 开发的 Xamarin 表单应用程序。 我在 IOS 中面临的问题是我无法从下面的方法导航到 CreateAccount 页面。但是相同的代码在 UWP 中完美运行。
protected async override void OnInitialized()
{
InitializeComponent();
await NavigationService.NavigateAsync($"NavigationPage/LoginPage");
}
protected override void RegisterTypes(IContainerRegistry
containerRegistry)
{
containerRegistry.RegisterForNavigation<CreateAccount, CreateAccountViewModel>();
containerRegistry.RegisterForNavigation<LoginPage,LoginViewModel>();
containerRegistry.RegisterForNavigation<ForgotPassword>();
}
当我像下面这样替换上面的行时,导航正在发生,但 ViewModel 没有被注册。
containerRegistry.RegisterForNavigation<CreateAccount>();
AppDelegate.cs
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App(new iOSInitializer()));
return base.FinishedLaunching(app, options);
}
}
public class iOSInitializer : IPlatformInitializer
{
public void RegisterTypes(IContainerRegistry containerRegistry)
{
}
}
}
CreateAccountPageViewModel:
public class CreateAccountViewModel : BasePageViewModel,
INavigationAware
{
public static INavigationService _navigationService;
public CreateAccountViewModel(INavigationService navigationService)
: base(navigationService)
{
_navigationService = navigationService;
}
}
感谢任何帮助。
【问题讨论】:
-
您是否尝试在 NavigationPage/LoginPage 之前删除 $ 并检查?
-
是的,我尝试在 NavigationPage/LoginPage 之前删除 $,但它仍然无法正常工作 @hashimks
标签: c# xamarin.forms xamarin.ios prism