Como voltar de uma Página do PageStack para a guia pai no Kit de Ferramentas da UI

3

Então em uma pergunta anterior eu tentei usar o Ubuntu UI Toolkit para aninhar um PageStack dentro do componente Tabs. Parecia funcionar, mas tinha suas peculiaridades, então agora estou tentando outra opção, que em teoria deveria ter o mesmo efeito de acordo com a documentação .

No entanto, com o código abaixo, notei o seguinte: ao abrir a página3, se eu puxar a barra de ferramentas e tocar no botão Voltar, ela sempre me retornará para a guia inicial em Guias, em vez do real guia da qual a página foi carregada.

Ou seja, page3 é carregado de tab2 , mas se eu abrir a página, puxe a barra de ferramentas da parte inferior e clique em Voltar, retornarei para tab1 .

Como posso fazer com que o toque em Voltar me retorne para 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"
            }
        }
    }
}
    
por David Planella 10.05.2014 / 18:25

2 respostas

1

Isso se deve a um bug introduzido recentemente no Kit de ferramentas da interface do usuário: link

Uma vez que isso for corrigido, ele retornará novamente à aba selecionada anteriormente quando voltar para a página de Guias de um PageStack.

    
por mhall119 10.05.2014 / 23:59
0

A maneira de fazer isso é definir um botão Voltar personalizado em uma barra de ferramentas atribuída à propriedade page3 tools . Com isso, posso replicar o que o botão Voltar padrão faz em termos de voltar à raiz do PageStack e, em seguida, escolher para qual guia retornar.

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;
            }
        }
    }

    // [...]
}
    
por David Planella 10.05.2014 / 19:18