我是Blackberry Cascades
的新手,我想创建一个简单的NavigationPane
。我非常习惯Qt的StackView
,它可以让你推送和弹出页面。但是,Qt的[StackView][1]
具有名为Stack.view
的附加属性,允许您从任何子页面访问堆栈。
我怎样才能在Blackberry的Cascades中做到这一点?是否可以从您当前页面访问NavigationPane
页面堆栈?我认为这非常有用。
例如,我有这个简单的项目,其中包含两个qml文件,每个文件代表一个页面:
主页:
// main.qml
import bb.cascades 1.4
NavigationPane {
id: nav
Page {
Container {
ListView {
dataModel: XmlDataModel {
source: "data.xml"
}
onTriggered: {
if (indexPath.length > 1) {
var chosenItem = dataModel.data(indexPath);
var contentpage = itemPageDefinition.createObject();
contentpage.itemPageTitle = chosenItem.name
nav.push(contentpage);
}
}
accessibility.name: "Listing"
}
}
}
attachedObjects: [
ComponentDefinition {
id: itemPageDefinition
source: "ItemPage.qml"
}
]
onPopTransitionEnded: {
page.destroy();
}
}
辅助页面:
// ItemPage.qml
import bb.cascades 1.4
Page {
property alias itemPageTitle: titlebar.title
titleBar: TitleBar {
id: titlebar
}
content: Container {
}
}
是否可以从nav
访问NavigationPane
或ItemPage.qml
?我想要,例如从ItemPage.qml
创建一个新页面并将其推入堆栈。是否可以这样做?
修改
例如,Blackberry开发者网站上有this文档页面,其中有一个主页面示例:
和辅助页面:
如您所见,在辅助myPage.qml
中,他使用navigationPane
。怎么可能?他如何访问另一个组件中的ID?