1

私は UITableViews が初めてで、このトピックについてあまり知りません。

同じビューに 2 つのボタンがありますが、テーブルにはありません。1 つのボタンが押されたときに UITableViewCells 間の切り替えを制御し、特定のセルをロードするためのブール値を設定します。

  • ボタン 1 をクリックすると、CellType1 のテーブルが表示されます。
  • ボタン 2 をクリックすると、CellType2 のテーブルが表示されます。

私の目標は、これに同じテーブルを使用することです。しかし、どこから始めればよいかわかりません。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableItem";
if (clickButton1 == true)
    {
        clickButton1 *cell = (clickButton1*)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
        if (cell == nil) {
            //cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CellType1" owner:self options:nil];
            cell = [nib objectAtIndex:0];
        }
        cell.name.text =  @"Trial";
        return cell;
    }
    else if (clickButton2 == true)
    {
        clickButton2 *cell = (clickButton2*)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
        if (cell == nil) {
            //cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CellType2" owner:self options:nil];
            cell = [nib objectAtIndex:0];
        }
        //cell.name.text =  @"Trial";
        return cell;
    } else

このコードは最適ではないと思います。しかし、私はこの時点で迷っています。前もって感謝します!

4

1 に答える 1

2

このようなチュートリアルの例を使用して...

//3</pre>
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section        {
return [self.tweetsArray count];
}

//4
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
 //5
 static NSString *cellIdentifier = @"SettingsCell";

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
//6
NSString *tweet = [self.tweetsArray objectAtIndex:indexPath.row];
//7
[cell.textLabel setText:tweet];
[cell.detailTextLabel setText:@"via Codigator"];
return cell;
}

self.tweetArray1 と self.tweetArray2 のようなアイテムの 2 つの配列がある場合、このコードを次のように変更できます。

//3</pre>
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section      {

int i = buttonNumberClicked;
return [self.tweetsArray[i] count];
}

  //4
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:   (NSIndexPath *)indexPath {
//5

int i = buttonNumberClicked;

static NSString *cellIdentifier = @"SettingsCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
//6
NSString *tweet = [self.tweetsArray[i] objectAtIndex:indexPath.row];
//7
[cell.textLabel setText:tweet];
[cell.detailTextLabel setText:@"via Codigator"];
return cell;
}

ボタンのibactionsを設定して、変数/ int buttonNumberClickedを、どちらが押されたかに応じて1または2に変更し、[tableView reloadData]; ibaction の内部でも、これが役立つことを願っています。

于 2013-06-24T21:39:10.660 に答える