0

tableView1 のヘッダーに 2 つのボタンがあります。ユーザーがいずれかのボタンをクリックすると、次の 2 つのことが起こるようにしたいと考えています。

tableView1 が消える

tableView2が表示されます

また

tableView1が表示されます

tableView2 が消える

どうすればIOSを使用してそれを行うことができますか?

私は次のことを試しました:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row == 0)
{
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        [button setImage: [UIImage imageNamed:@"tableheader_01.png"]forState:UIControlStateNormal];
        button.frame = CGRectMake(0, 0, 159, 57);
        button.tag = 7;
        [button addTarget:self action:@selector(hideTable:) forControlEvents:UIControlEventTouchUpInside];

        UIButton *button2 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button2 setImage: [UIImage imageNamed:@"tableheader_02.png"]forState:UIControlStateNormal];
        button2.frame = CGRectMake(159, 0, 161, 57);
        button2.tag = 7;
        [button2 addTarget:self action:@selector(hideTable:) forControlEvents:UIControlEventTouchUpInside];

        [cell.contentView addSubview: button];
        [cell.contentView addSubview: button2];

hideTable には次のコードがあります。

-(IBAction) hideTable : (id) sender;
{
    NSLog(@"test");

    [self.myTableView1 setHidden:YES];
    [self.myTableView2 setHidden:NO];
}

しかし、これは機能しません。

4

3 に答える 3

0

単一のテーブル ビューを使用して、ボタンがクリックされたときにデータ ソースを変更し、テーブルビューをリロードすることができます。

于 2012-11-28T02:38:04.453 に答える
0

self.myTableView1.datasource = nil を設定できます。それを使用する必要がある場合は、self.myTableView1.datasource = self および [self.myTableView1 reloaddata] を設定できます。

于 2012-11-28T02:55:05.060 に答える
0

このような UI を実装する可能性は非常に多くあります。

1.両方のボタンを両方のテーブルの外または上に保持できます。したがって、ボタン1をクリックすると、最初のテーブルを非表示にして2番目を表示し、2番目をクリックすると2番目のテーブルを非表示にして最初のテーブルを表示します。

また

2.最初のテーブルで、最初の行に2つのボタンを追加します.button1をクリックすると、最初のテーブルを非表示にする代わりに、numberofrowsメソッドでtable1データソースの1を返し、table1をリロードして、ボタンがそこにあり、2番目のテーブルが表示されるようにします最初のテーブルの下。ユーザーが 2 番目のボタンをクリックすると、2 番目のテーブルが非表示になり、最初のテーブルの新しいデータ ソースが返され、テーブル 1 がリロードされます。

また

3.両方のデータ ソースに 1 つのテーブルを使用します。最初の行には 2 つのボタンがあります。それらをクリックすると、それに応じてテーブルがリロードされます。

于 2012-11-28T05:45:11.593 に答える