【问题标题】:How to Change MainPage in xamarin forms at runtime?如何在运行时更改 xamarin 表单中的 MainPage?
【发布时间】:2016-01-13 06:12:05
【问题描述】:

在 xamarin 表单中,具有主详细信息布局的 RootPage。我的任务是在用户成功登录后显示该页面。我正在使用 azure 移动服务进行登录。我花了更多时间来获得结果。我看到了一些其他解决方案,但这些解决方案没有按预期呈现主细节。终于我得到了解决方案。

这里是app.cs中的代码

public App()
    {

     Client = new MobileServiceClient("your azure url", "your master key");
        LoadMainPage();

    } public void LoadMainPage()
    {
        if (Client.CurrentUser == null)
        {
            MainPage=new NavigationPage(new SplashPage());
        }
        else
        {
            MainPage = new RootView();;
        }


    }

在登录页面

 async void  OnLoginClicked(object sender, EventArgs args)
    {
        MobileServiceUser user;

        try
        {
            user = await DependencyService.Get<IMobileClient>().LoginAsync(MobileServiceAuthenticationProvider.Facebook);
            Application.Current.MainPage=new RootView();
            await Navigation.PopToRootAsync();

        }
        catch (InvalidOperationException ex)
        {
            if (ex.Message.Contains("Authentication was cancelled"))
            {
                //messageLabel.Text = "Authentication cancelled by the user";
            }
        }
        catch (Exception ex)
        {
          //  messageLabel.Text = "Authentication failed";
        }

    }

【问题讨论】:

    标签: azure asp.net-web-api2 azure-mobile-services xamarin-forms


    【解决方案1】:

    您需要考虑进行导航,而不是更改这些路径的路线。在此处查看 Xamarin Navigation 文档:https://developer.xamarin.com/guides/cross-platform/xamarin-forms/getting-started/introduction-to-xamarin-forms/#Navigation

    await Navigation.PushModalAsync(new LoginPage());
    

    【讨论】:

    • 谢谢。好点!这样,每当我获得 webapi AccessToken Expired 时,我都可以导航到我的登录页面。
    猜你喜欢
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多