Ios 钛合金移动导航组。在新窗口完全渲染之前打开过渡

Ios 钛合金移动导航组。在新窗口完全渲染之前打开过渡,ios,mobile,titanium,Ios,Mobile,Titanium,我目前正在开发一款iPad应用程序,遇到了以下问题 当我试图打开一个包含一组按钮的新窗口时,这些按钮是在循环中创建的,在转换过程中,只有第一个按钮可见,其余按钮将在新窗口可见后渲染。看起来很糟糕,我想不出一种方法来“等待”滑动,直到一切就绪(有点像jquery的就绪,或者加载DOM元素时的回调) 以下是我正在做的: clicker.addEventListener('click', function(e){ var overview = Ti.UI.createWindow( {

我目前正在开发一款iPad应用程序,遇到了以下问题

当我试图打开一个包含一组按钮的新窗口时,这些按钮是在循环中创建的,在转换过程中,只有第一个按钮可见,其余按钮将在新窗口可见后渲染。看起来很糟糕,我想不出一种方法来“等待”滑动,直到一切就绪(有点像jquery的就绪,或者加载DOM元素时的回调)

以下是我正在做的:

clicker.addEventListener('click', function(e){    
  var overview = Ti.UI.createWindow( {
    title : "Overview",
    barColor: '#000',
    layout : 'vertical',
    url: '/views/overview.js',
    _parent: Titanium.UI.currentWindow,
    navGroup : navGroup,
    rootWindow : win1
  });

  navGroup.open(overview, {animated:true});
});
在overview.js中,我执行以下操作:

var overviewdata = [/*some data*/];
for(var i = 0;i < overviewdata.length;i++){
//calculations for proper positioning
if(i == 0 || i%4 == 0){
    toppx = 30;
    leftpx = 40;
}
else
{
    leftpx += 245;
    toppx = -200;
}

overviewbttns[i] = Ti.UI.createButton({ 
    title: overviewdata[i].title,
    backgroundImage:"/images/views/button.png",
    width: 200,
    height: 200,
    left: leftpx,
    top: toppx,
    id: i
});

//add to window
win.add(overviewbttns[i]);

//attach event handler
overviewbttns[i].addEventListener('click',function(e){

    var w = Ti.UI.createWindow( {
        title : overviewdata[e.source.id].title,
        barColor: '#000',
        layout : 'vertical',
        url: "/views/"+overviewdata[e.source.id].jsfile,
        _parent: Titanium.UI.currentWindow,
        navGroup : win.navGroup,
        rootWindow : win.rootWindow        
    });

    win.navGroup.open(w);
});

}
var overviewdata=[/*部分数据*/];
对于(变量i=0;i
那么,当概览窗口完全呈现时,是否有方法获取回调/事件

谢谢你的任何暗示,我真的被困在这里了


提前谢谢

我有一个想法,创建一个函数,将你的overview.js代码放入,当你点击clicker按钮打开overview.js触发自定义事件,如
Ti.App.fireEvent('loadData')
然后打开窗口,希望这对您有所帮助

Ti.App.addEventListener('loadData',function(e){
    callFunction(); //== call function for fill data into window 
});

我有一个想法,创建一个函数,将你的overview.js代码放入,当你点击clicker按钮打开overview.js时触发自定义事件,如
Ti.App.firevent('loadData')
然后打开窗口,希望这对您有所帮助

Ti.App.addEventListener('loadData',function(e){
    callFunction(); //== call function for fill data into window 
});

@尼廷:是的,你是对的

也读。这也是非常有用的,请详细描述。
我认为这对新手非常有用。奶酪

尼廷是的,你是对的

也读。这也是非常有用的,请详细描述。
我认为这对新手非常有用。奶酪

有人吗?仍在努力让它发挥作用,但事实并非如此。有办法“预渲染”窗口吗?有人吗?仍在努力让它发挥作用,但事实并非如此。有没有一种方法可以“预渲染”窗口?这个想法指向正确的方向,如果实施得当,应该会奏效。但对于我的具体问题,我发现包括“overview.js”导致了延迟。因此,我最终将生成按钮的部分代码移动到父窗口。这个想法指向正确的方向,如果实施得当,应该会奏效。但对于我的具体问题,我发现包括“overview.js”导致了延迟。因此,我最终将生成按钮的部分代码移动到父窗口。现在它工作得很好。