0

我正在制作一个具有四组非常相似的数据的新应用程序。我想让四个 UIButtons 导航到一个带有四个 UITableViews 的 UITabBar。我不想制作四个按钮来推动四组表格视图。我认为用 13 个 UIView 制作一个应用程序会使它变得比它需要的更大。所以,我必须弄清楚如何让 UIButton 动作改变表格接收到的数据。我正在积极开展这个项目。任何的意见都将会有帮助。谢谢你。

4

2 回答 2

1

为了更改表视图数据源,您需要更改从表委托上的 numberOfRowsInSection 返回的内容。我这样做的一种方法是使用枚举来表示我要使用的数据集,并有一个局部变量来保存选择的数据

typedef enum
{
    DataSetOne,
    DataSetTwo
} DataSetEnum

@property(nonatomic, retain) DataSetEnum dataset;
@property(nonatomic, retain) NSArray *datasetone;
@property(nonatomic, retain) NSArray *datasettwo;

- (void) viewDidLoad
{
     dataset = DataSetOne;
}
- (IBAction) buttonPressed
{
     dataset = DataSetTwo;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
     if(dataset == DataSetOne)
     {
          return [self.datasetone count];
     }
     else if(dataset == DataSetTwo)
     {
          return [self.datasettwo count];
     }
}

然后在 cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     if(dataset == DataSetOne)
     {
           //configure cell
     }
}
于 2011-03-31T17:37:14.900 回答
0

如果您的数据相似,您可以从每个按钮的IBAction变量中设置一个数据:

NSArray* data = ...

然后在您的按钮方法中:

-(IBAction*)clickedButton1:(id)sender {
    data = [self getButton1Data]
    [self reloadAll]
}
于 2011-03-31T17:40:50.903 回答