我有一个应用程序,显示可以购买的产品列表。列表的视图控制器如下所示:
@interface InAppPurchaseListUIItemViewController :
UIViewController <UITableViewDelegate, UITableViewDataSource> {
IBOutlet UITableView *_inAppPurchaseListTable;
.
.
.
}
.
.
.
@end
这是显示列表的代码:
_inAppPurchaseListUIItemViewController = [[InAppPurchaseListUIItemViewController alloc]
initWithItemList: [[InAppPurchaseManager getInstance] getAuthorisedInAppPurchaseProducts]
: self
andSelector: @selector(inAppPurchaseSelected:)
];
_inAppPurchaseListCustomUIView= [[InAppPurchaseListCustomUIView alloc]
initWithFrame:CGRectMake(0, 0, inapp_purchase_table_width, inapp_purchase_table_height)];
[_inAppPurchaseListCustomUIView addSubview:_inAppPurchaseListUIItemViewController.view];
_inAppPurchaseListUIItemViewController.view.frame = _inAppPurchaseListCustomUIView.frame;
InAppPurchaseListCustomUIView
子类UIView
,否则为空类。
还有一个与视图控制器同名的.xib。 .xib似乎包含一个表视图,没有别的。
列表显示正常,但现在我想更改显示的项目。我有NSMutableArray
支持表。当我更改数组时,我需要使用新数组重新绘制UITableView
,但_inAppPurchaseListTable
总是为零。
reloadData
? Connections Inspector
答案 0 :(得分:2)
我终于明白了。答案在Table View Programming Guide for iOS的第43页。
我需要将它添加到视图控制器:
- (void)loadView
{
tableView = [[UITableView alloc]
initWithFrame: [[UIScreen mainScreen] applicationFrame]
style: UITableViewStylePlain
];
tableView.autoresizingMask =
UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
tableView.delegate = self;
tableView.dataSource = self;
[tableView reloadData];
self.view = tableView;
[tableView release];
}
然后我在视图控制器中删除了.xib和IBOutlet。
现在我可以使用[tableView reloadData];
重新加载表格视图。而且我不需要.xib。