无论如何在添加到NavigationPane时在qml中有一个onLoad函数?

时间:2013-02-10 05:39:41

标签: blackberry blackberry-10 blackberry-cascades

我是Blackberry 10 dev的新手。所以我想知道最好的方法是什么,因为我没有从开发文档中得到任何明确的答案。

我想要的是从导航屏幕在我的应用中启动单独的视图。然后,新页面将创建一个http请求,并根据输出更新UI。

最好的方法似乎是使用NavigationPane并添加一个qml视图。但是,当它被推入堆栈时,如何调用C ++函数?类似于Fragments中的android onActivityCreated()。有Http示例文档,但程序从继承的QObject的构造函数启动了http请求。 我如何执行一个函数,因为新的qml被添加到导航堆栈中

 // navigationpane.qml

NavigationPane {
    id: navigationPane
    Page {
        Container {
            Label { 
                text: "First page"
            }
        }

        actions: [
            ActionItem {
                title: "Next page"
                ActionBar.placement: ActionBarPlacement.OnBar
                onTriggered: {
                    var page = pageDefinition.createObject();
                    navigationPane.push(page);
                }

                attachedObjects: ComponentDefinition {
                    id: pageDefinition;
                    source: "secondpage.qml"
                }
            }
        ]
    }
    onPopTransitionEnded: { page.destroy(); }
}

2 个答案:

答案 0 :(得分:3)

我认为onCreationCompleted函数可能正是您所需要的。

在secondpage.qml文件的Page对象中,添加:

Page {
        id: secondpage

        onCreationCompleted: {
            // use Javascript to call the exposed C++ function
        }
    }

答案 1 :(得分:0)

如果你想要更多的东西是“onActivityCreated()”的精神,你可以使用信号transitionEnded:

    NavigationPane { 
         onPushTransitionEnded{
             top.callYourPageFunction();
        }
    }