如何对 tableview 行进行操作以及如何在其中添加添加披露指示符?
How to give action to tableview row and how to add Add disclosure indicator in it?
这是对我的 class 的描述。
首先参考上图
所以在这里,我创建了一个按钮。(参见图像中的场景 1)单击按钮后,将出现一个 table 视图(参见图像中的场景 2)。如果我单击任何单元格,那么 table 视图单元格值将显示在该按钮文本上(参见图像中的场景 3)。在这里,我没有对任何 table 视图单元格进行任何操作。
现在,我对这些行进行了操作(仅对索引 0 进行测试)。当我在 Uitableview 1 上单击 uitableviewcell 时,它将显示另一个 tableview 2 和先前的 table view hide。见下图。
所以在这个 table 视图 2 中,我想采取行动,即当我点击 table 查看第二行 table 的任何行时 示例 :假设我点击了 Arjun 然后按钮标签需要由 Arjun 更改并且这个 table 视图必须隐藏或者如果点击 table 查看像 Karan 这样的行然后在一个弹出窗口上我想像选择了 Karan 一样显示。
简而言之,我想知道如何对第二个 table 视图行进行操作,以及如何将披露指示符添加到第一个 table 视图。
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
检查以下答案..!
- (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];
}
这是对我的 class 的描述。
首先参考上图
所以在这里,我创建了一个按钮。(参见图像中的场景 1)单击按钮后,将出现一个 table 视图(参见图像中的场景 2)。如果我单击任何单元格,那么 table 视图单元格值将显示在该按钮文本上(参见图像中的场景 3)。在这里,我没有对任何 table 视图单元格进行任何操作。
现在,我对这些行进行了操作(仅对索引 0 进行测试)。当我在 Uitableview 1 上单击 uitableviewcell 时,它将显示另一个 tableview 2 和先前的 table view hide。见下图。
所以在这个 table 视图 2 中,我想采取行动,即当我点击 table 查看第二行 table 的任何行时 示例 :假设我点击了 Arjun 然后按钮标签需要由 Arjun 更改并且这个 table 视图必须隐藏或者如果点击 table 查看像 Karan 这样的行然后在一个弹出窗口上我想像选择了 Karan 一样显示。
简而言之,我想知道如何对第二个 table 视图行进行操作,以及如何将披露指示符添加到第一个 table 视图。
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
检查以下答案..!
- (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];
}