gpt4 book ai didi

c# - Xamarin 从 View 模型重新导航到主页显示空页面

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:27 30 4
gpt4 key购买 nike

当我从 View 模型重新导航到我的第一个页面(称为主页)时,它显示一个空白页面。

我知道这与堆栈有关,但无论我尝试什么,它都保持为空。有人有什么想法吗?我找到了相关主题,但方式不同。

主页构造函数:

    public Login()
{
InitializeComponent();
}

View 模型中的代码

await Application.Current.MainPage.Navigation.PopToRootAsync();
await Application.Current.MainPage.Navigation.PushAsync(new Login());

好的,更多信息:

设置我的根页面:

    public partial class App : Application
{

public App()
{
InitializeComponent();
NavigationPage navigationPage = new NavigationPage(new Login()); << Renamed mainpage to login after the suggestion over here
MainPage = navigationPage;
}

我在登录后调用我的根页面。我想确保我的代码在他/她的 ADAL token 过期后注销我的用户。在我的 View 模型中它会像这样发生:

var auth = DependencyService.Get<IAuthenticator>();
auth.logout();
await Application.Current.MainPage.Navigation.PopToRootAsync(true);

(如果没有 pushAsync,则根本不会导航并停留在当前页面。这会在新页面加载和用户登录后直接调用)

最佳答案

在您的 App.cs 中,您应该定义一个 NavigationPage 来传递您的导航堆栈的根。

假设:

public class App : Application
{
public App ()
{
NavigationPage navigationPage = new NavigationPage (new MainPage ());
MainPage = navigationPage;
}
}

您的应用程序的根将是 MainPage。

无论您的应用程序在何处调用
Navigation.PopToRootAsync();
方法,您都将返回到您的根页面。 (在本例中为主页)
您不需要将 MainPage 压入堆栈,因为它已经存在,您将弹出除根之外的所有页面。不会调用页面的构造函数,但您可以依赖 Appearing页面显示时触发的事件。

关于c# - Xamarin 从 View 模型重新导航到主页显示空页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48284860/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com