Appcelerator Titanium 3.x / IOS7无法将窗口添加为视图的子窗口

时间:2013-10-28 19:24:52

标签: ios ipad ios7 titanium appcelerator

我继承了一个Appcelerator项目,并且更新到IOS7 SDK已经破坏了iPad中的分割视图 我收到此错误[INFO]无法添加窗口作为视图的子项。返回。
据我所知,代码试图创建并将缺少的视图添加到窗口。我相信它可能与Appcelerators Migration Guide的这一部分有关!它引用了IOS7新窗口架构。其他所有东西似乎都被添加到窗口中而没有任何问题。我不确定这是否重要,但它是一个universla iPhone / iPad应用程序。 我真的不使用IOS应用程序或Appcelerator,我将不胜感激任何支持。

    function StyledWindow(title) {
      var self = Ti.UI.createWindow({
        title     :title,
        backgroundImage : '/images/bg-window.png',
        barImage    : '/images/header.png',
        barColor    : '#e6c661',  // currently set to gold.  Blue is #14243d. This appears to only work on iOS 7
        navTintColor  : '#e6c661',  // sets text color for what used to be nav buttons
        tabBarHidden  : true,
        translucent   : false,    // This value removes the translucentsy of the header in iOS 7
        statusBarStyle  :Titanium.UI.iPhone.StatusBar.LIGHT_CONTENT,  // This sets the window title to white text.
      });

      return self;
    };
    var artWindow = new StyledWindow();
    var self = new StyledWindow('Articles');
    self.add(artWindow); // this is where the error occurs

1 个答案:

答案 0 :(得分:1)

Window对象不能包含另一个Window对象。

使用StyledWindow()并将其添加到顶级窗口,而不是两次调用Ti.UI.createView()

function StyledWindow(title) {
  var self = Ti.UI.createWindow({
    title: title,
    barImage    : '/images/header.png',
    barColor    : '#e6c661',
    navTintColor  : '#e6c661',
    statusBarStyle: Titanium.UI.iPhone.StatusBar.LIGHT_CONTENT,
  });

  return self;
};

var artWindow = new Ti.UI.createView({
  backgroundImage : '/images/bg-window.png',
});

var self = new StyledWindow('Articles');
self.add(artWindow);
self.open();