我正在 Titanium 中开发 iPhone 应用程序,并且需要将一行附加到特定的TableViewSection。我无法在页面加载时执行此操作,因为它是由用户在应用程序的整个生命周期中动态完成的。文档说 TableViewSection 有一个带有add
两个参数的方法,但我不能让它工作。这是我现有的代码:
for(var i = 0; i <= product_count; i++){
productsTableViewSection.add(
Ti.UI.createTableViewRow({
title:'Testing...'
})
);
}
那只是传入一个参数,这会导致 Titanium 因未捕获的异常而死:
2010-04-26 16:57:18.056 MyApplication[72765:207] *** Terminating app due to uncaught
exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in
section 2. The number of rows contained in an existing section after the update (2) must be
equal to the number of rows contained in that section before the update (1), plus or minus the
number of rows inserted or deleted from that section (0 inserted, 0 deleted).'
2010-04-26 16:57:18.056 MyApplication[72765:207] Stack: (
该异常看起来确实添加了行,但由于某种原因不允许这样做。由于文档说TableViewSection
需要“视图”和“行”,我尝试了以下方法:
for(var i = 0; i <= product_count; i++){
productsTableViewSection.add(
Ti.UI.createView({}),
Ti.UI.createTableViewRow({
title:'Testing...'
})
);
}
上面的代码没有抛出异常,但它给出了一个[WARN]
:
[WARN] Invalid type passed to function. expected: TiUIViewProxy,
was: TiUITableViewRowProxy in -[TiUITableViewSectionProxy add:] (TiUITableViewSectionProxy.m:62)
TableViewSections 似乎不支持任何方法,如appendRow
, 或insertRow
,所以我不知道还有什么可以用的。我查看了 KitchenSink 应用程序,但没有找到向 TableViewSection 添加行的示例。任何帮助表示赞赏。