如何从PageStack的页面返回到UI Toolkit中的父选项卡

因此, 在上一个问题中,我尝试使用Ubuntu UI Toolkit将PageStack嵌套在Tabs组件中。 它似乎有效,但它有它的怪癖,所以我现在尝试另一种选择,理论上根据文档应该具有相同的效果。

但是,通过下面的代码,我注意到以下内容:在打开第3页时,如果我然后拉动工具栏并点击“返回”按钮,它总是返回到选项卡中的初始选项卡,而不是实际的选项卡。页面已加载。

也就是说, page3是从tab2加载的,但是如果我打开页面,从底部拉出工具栏并点击Back,我会返回到tab1

我如何才能点击Back返回tab2

 import QtQuick 2.0 import Ubuntu.Components 1.1 MainView { id: mainView width: units.gu(38) height: units.gu(50) PageStack { id: pageStack Component.onCompleted: push(tabs) Tabs { id: tabs Tab { id: tab1 title: "Tab 1" page: Page { Label { anchors.centerIn: parent text: "Use header to navigate between tabs" } } } Tab { id: tab2 title: "Tab 2" page: Page { Button { anchors.centerIn: parent onClicked: pageStack.push(page3) text: "Press" } } } } Page { id: page3 visible: false title: "Page on stack" Label { anchors.centerIn: parent text: "Press back to return to the tabs" } } } } 

这是由于最近在UI工具包中引入了一个错误: https : //bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1316736

修复后,当返回到PageStack的Tabs页面时,它将再次返回到之前选择的选项卡。

这样做的方法是在分配给page3 tools属性的tools栏中定义自定义后退按钮。 有了这个,我可以复制标准的Back按钮在返回到PageStack的根目录方面做了什么,然后选择要返回的选项卡。

 ToolbarItems { back: ToolbarButton { action: Action { text: i18n.tr("Back") iconName: "back" onTriggered: { pageStack.pop(); // It'd be neater to use `selectedTab`, but it's read-only tabs.selectedTabIndex = 1; } } } // [...] } 
Interesting Posts