Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在内容页Xamarin.Forms中修改NavigationStack时出现InvalidOperationException_C#_Xamarin_Xamarin.ios_Xamarin.forms_Content Pages - Fatal编程技术网

C# 在内容页Xamarin.Forms中修改NavigationStack时出现InvalidOperationException

C# 在内容页Xamarin.Forms中修改NavigationStack时出现InvalidOperationException,c#,xamarin,xamarin.ios,xamarin.forms,content-pages,C#,Xamarin,Xamarin.ios,Xamarin.forms,Content Pages,有一个奇怪的问题,当我在ContentPage中时,我无法对NavigationStack进行任何修改 我想做的是添加一个新页面,并在设备方向改变时删除页面内的前一个页面 以下代码应处理更改页面的问题: private async void DoTest() { Page originalRootPage = App.CurrentInitialized.Navigation.NavigationStack.Last(); await App.CurrentInitialized

有一个奇怪的问题,当我在ContentPage中时,我无法对NavigationStack进行任何修改

我想做的是添加一个新页面,并在设备方向改变时删除页面内的前一个页面

以下代码应处理更改页面的问题:

private async void DoTest()
{
    Page originalRootPage = App.CurrentInitialized.Navigation.NavigationStack.Last();
    await App.CurrentInitialized.Navigation.PushAsync(new HomePage_Landscape());
    App.CurrentInitialized.Navigation.RemovePage(originalRootPage);
}
我在此重写的方法中调用上述代码:

protected override async void OnSizeAllocated(double width, double height)
{
    base.OnSizeAllocated(width, height);
    DeviceInfo.SetSize(width, height);
    if (!DeviceInfo.IsOrientationPortrait())
    {
        MessagingCenter.Send<HomePage>(this, "Hi");
    }

}
受保护的覆盖异步无效OnSizeAllocated(双倍宽度,双倍高度)
{
底座。尺寸定位(宽度、高度);
设备信息设置大小(宽度、高度);
如果(!DeviceInfo.IsOrientationPortrait())
{
MessagingCenter.发送(此“嗨”);
}
}
我使用了自己定义的类DeviceInfo。但是,IsorientationRotatic检查设备的高度是否大于设备的宽度

无论何时触发命令,都可以调用DoTest方法!但不是在方向改变的时候


如果有更好的方法,请在横向浏览期间更改页面UI设计。请帮忙

当方向发生变化时删除页面似乎是一种自找麻烦的情况:)您能解释一下为什么需要这样做吗,也许有更好的方法。您的InvalidOperationException中的信息是什么?