我想根据我的输入更改tableview的数量,这将根据用户而改变,我需要能够在我的数据源中引用这些tableview,因为它们应该根据tableview保留不同的数据。我想如果我可以为每个创建的tableview创建一个唯一的变量,这可能会完成,但我需要能够通过我的全班引用这些变量?
答案 0 :(得分:2)
您可以创建一个NSMutable Array并直接在其中添加UITableView。您可以使用静态引用创建全局变量存储并全局访问它。
@interface Singleton : NSObject {
NSMutableArray *TableArray;
}
+ (Singleton *)instance;
@end
@implementation Singleton
+ (Singleton *)instance {
static Singleton *instance;
@synchronized(self) {
if(!instance) {
instance = [[Singleton alloc] init];
}
}
return instance;
}
另一种选择是在您的appdelegate中包含NSMutableArray,并在整个应用程序中全局访问它。
动态创建对象不是问题。 你可以创建尽可能多的UITableview,并使用。
将它们添加到NSMutableArrayUITableview *temp = [UITableview alloc] initWithFrame : ... ];
temp.delegate = self ;
tableArray.addObject(temp);
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath(NSIndexPath *)indexPath{
if(tableView = [tableArray objectAtIndex:x]{
// do this
}
else if (select appropriate table view from array ){
}
//do this for the rest
}
您面临的是设计问题。有关其他替代方案,请参阅Apple Guides for Objects Communication
答案 1 :(得分:1)
为什么不创建一个NSMutableArray成员变量来存储它们呢?需要更改数据源时,将特定的tableview设置为数据源。我不确定你究竟要做什么的细节,但动态添加它们并改变数据源应该不是问题。