0

非常によく似た4つのデータセットを持つ新しいアプリを作成しています。4つのUITableViewを持つ1つのUITabBarに移動するために4つのUIButtonを作成したいと思います。4セットのテーブルビューにプッシュする4つのボタンを作成したくありません。13個のUIViewを使用してアプリを作成すると、必要以上に大きくなると思います。したがって、UIButtonアクションでテーブルが受け取るデータを変更する方法を理解する必要があります。私はこのプロジェクトに積極的に取り組んでいます。どんな提案も役に立ちます。ありがとうございました。

4

2 に答える 2

1

テーブルビューのデータソースを変更するには、テーブルデリゲートのnumberOfRowsInSectionから返される内容を変更する必要があります。これを行う1つの方法は、列挙型を使用して使用するデータセットを表し、ローカル変数を使用して選択したデータセットを保存することです。

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 に答える