导航组第二个窗口不调用第三个窗口

时间:2017-09-29 19:30:38

标签: navigation titanium appcelerator

设置iOS导航窗口,可以使第一个窗口到第二个窗口工作,但无法进一步调用(推送导航堆栈)任何其他窗口的第二个窗口。

这是有效的

window1.js
   var NewWin = require('main_windows/win2').win2();
   NewWin.containerNav = navGroup;
   navGroup.openWindow(NewWin);

win2.js
   function win2() {
      var currWindow = Ti.UI.createWindow();
      .
   return currWindow;
} // end of function win2
exports.win2 = win2;

但是无法从win2尝试调用win3:

win2.js
    var NewWin = require('main_windows/win3').win3();
    NewWin.containingNav = currWindow.containingNav;
    NewWin.containingNav.open(NewWin);

win3.js

   function win2() {
       var currWindow = Ti.UI.createWindow();
       .
       return currWindow;
   } // end of function win3
   exports.win2 = win2;

不确定我错过了什么。

1 个答案:

答案 0 :(得分:0)

你在这里犯了一些错误:

它应该是这样的:

  • 创建 NavigationWindow &如您在 var navGroup
  • 中所做的那样,将其保存在全局参考中
  • 仅使用 var navGroup 打开新窗口,使其全局化,您可以使用 Alloy.Globals.navGroup 或创建< strong> NavigationWindow 在一个文件中,可以作为 require('fileName');

    win2.js
    
    var NewWin = require('main_windows/win3').win3();
    navGroup.openWindow(NewWin);
    
  • 这样您就不需要将每个下一个窗口都附加到上一个窗口&amp;当窗户数量增加时,它会变得一团糟。
  • 你做错的第二件事是在NewWin.containingNav.open(NewWin);
  • 中调用打开方法而不是 openWindow()