如何对tableview行进行操作以及如何在其中添加“添加披露指示符”?

时间:2017-10-03 09:32:21

标签: ios objective-c iphone uitableview uitableviewrowaction

这是我班级的描述。

This is screenshots of first tableview

首先参考上面的图片。

所以在这里,我创建了一个按钮。(参见图像中的场景1)单击按钮后,将出现一个表视图(参见图像中的场景2)。如果我单击任何单元格,则该表格视图单元格值将显示在该按钮文本上(请参见图像中的场景3)。在这里,我没有对任何表视图单元格进行任何操作。

现在,我对这些行进行了操作(仅对索引0进行测试)。当我在Uitableview 1上单击uitableviewcell时,它将显示另一个tableview 2和上一个表视图hide。见下图。

Second Table view

所以在这个tableview 2中我想给出动作,即当我点击第二张表的tableview行中的任何一行示例时:假设我点击Arjun然后按钮标签需要由Arjun更改这个tableview必须隐藏或者如果点击像Karan那样的tableview行,那么在一个弹出窗口中我想显示像Karan一样。

简而言之,我想知道如何对第二个tableview行进行操作以及如何将披露指示符添加到第一个表视图中。

ViewCotroller.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>

@property (weak, nonatomic) IBOutlet UIButton *button;
@property (weak, nonatomic) IBOutlet UITableView *tableview1;
@property (weak, nonatomic) IBOutlet UITableView *tableview2;

@property(strong,nonatomic)NSArray *arr1;
@property(strong,nonatomic)NSArray *arr2;

- (IBAction)buttonAction:(id)sender;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.arr1=[[NSArray alloc]initWithObjects:@"One",@"Two",@"Three",@"Four",@"Five", nil];
     self.arr2=[[NSArray alloc]initWithObjects:@"Arjun",@"Karan",@"Amar", nil];

    self.tableview1.delegate=self;
    self.tableview1.dataSource=self;
    self.tableview2.delegate=self;
    self.tableview2.dataSource=self;

     self.tableview1.hidden=YES;
    self.tableview2.hidden=YES;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSInteger rows;

    if(tableView == _tableview1) rows = [_arr1 count];
    if(tableView == _tableview2) rows = [_arr2 count];

    return rows;
}

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

    static  NSString *simple=@"SampleIndentifier";

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:simple];

    if(cell==nil)
    {
        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simple];
     }

   // cell.textLabel.text=[self.arr1 objectAtIndex:indexPath.row];

    if(tableView == _tableview1)
        cell.textLabel.text = [self.arr1 objectAtIndex:indexPath.row];


    if(tableView == _tableview2)
        cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row];

    return  cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell= [self.tableview1 cellForRowAtIndexPath:indexPath];

    [self.button setTitle:cell.textLabel.text forState:UIControlStateNormal];
    self.tableview1.hidden=YES;


    if(tableView == _tableview1)
    {
        if(indexPath.row==0)
        {
            self.tableview1.hidden=YES;
            self.tableview2.hidden=NO;
                if(indexPath.row==0)
                {
                // cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row];

                }
          //  cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row];

        }

        //cell.textLabel.text = [self.arr1 objectAtIndex:indexPath.row];
     //self.tableview2.hidden=YES;
    }
    if(tableView == _tableview2)
        cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row];

}

- (IBAction)buttonAction:(id)sender {

    if(self.tableview1.hidden==YES)
    {
        self.tableview1.hidden=NO;
    }
    else
    {
         self.tableview1.hidden=YES;
    }
}
@end

1 个答案:

答案 0 :(得分:1)

检查以下答案..!

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell= [self.tableview1 cellForRowAtIndexPath:indexPath];

    [self.button setTitle:cell.textLabel.text forState:UIControlStateNormal];
    self.tableview1.hidden=YES;


    if(tableView == _tableview1)
    {
        if(indexPath.row==0)
        {
            self.tableview1.hidden=YES;
            self.tableview2.hidden=NO;
                if(indexPath.row==0)
                {
                // cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row];

                }
          //  cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row];

        }

        //cell.textLabel.text = [self.arr1 objectAtIndex:indexPath.row];
     //self.tableview2.hidden=YES;
    }
    if(tableView == _tableview2)
        cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row];

}