好吧,所以在我以前的设计中,在称为TasksGroupPage的MainPage上,我有一个“ +”图标,该图标将我带到NewTasksGroupPage以填写表单,然后单击save命令创建一个新TasksGroup(因此,不再需要+图标功能来加载页面)。
这工作得很好,单击“保存”按钮后,将带我进入MainPage。
但是我的问题是我更改了设计,现在删除了+图标,而是创建了一个新标签,现在将我带到NewTasksGroupPage。
要创建此标签,我只需将以下代码添加到我的TasksGroupPage(主页)中:width
现在的问题是: 当我单击NewTaskPageViewModel中的save命令时,该页面不会像以前一样将我带到最后一页,而是将所有文本保留在输入框中,并且仅在一段时间后创建TasksGroupPage。
我应该如何设置此新设计才能正常工作?如果无法执行,是否可以将GestureRecognizers添加到其中一个选项卡?
谢谢。
您现在可以在这里看到我的代码:
TasksGroupPage.xaml
controller
TasksGroupPage.xaml.cs,这是我不再需要的功能,但这是我使用的带有+图标的功能
<views:NewTasksGroupPage></views:NewTasksGroupPage>
NewTaskPageViewModel.cs,这是我保存命令的结尾,之前将我带到主页(TasksGroupPage),但现在它停留在那里并且不会将我的条目重置为空白(即使在其他选项卡之间切换时也是如此)页)
<TabbedPage>
<ContentPage>
// some xaml
</contentPage>
<views:NewTasksGroupPage></views:NewTasksGroupPage>
</TabbedPage>
答案 0 :(得分:0)
如果您阅读document Xamarin.Forms Navigation:
您会发现NavigationPage和TabbedPage是Xamarin.forms中导航页面的两种不同方式。
Navigation.PushAsync
和Navigation.PopAsync
仅在NavigationPage中起作用,而在TabbedPage中不起作用,这就是the page doesn't take me to the last page like it did before
的原因。
如果使用TabbedPage,则可以使用以下代码切换页面:
async void SaveNewTask(object sender, EventArgs args)
{
//this here means the current ContentPage
//this.Parent = NavigationPage
var tabbedPage = this.Parent.Parent as TabbedPage;
//if you don't have navigationPage, just use:
//var tabbedPage = this.Parent as TabbedPage;
//Switch to first page in tabs
tabbedPage.CurrentPage = tabbedPage.Children[0];
}