gpt4 book ai didi

iphone - UITableView 如何一次显示两个不同的数组?

转载 作者:行者123 更新时间:2023-12-03 19:21:28 25 4
gpt4 key购买 nike

下面的代码可以工作,但不符合我的意愿。我希望当我单击 UIbutton 时,它会自动更新 UITableview 中的新值而不是旧值。下面的代码仅在我按下 UIbuttons 时有效,之后当我滚动 UITableview 时才有效然后它用新值更新 UItableview。在我的应用程序中,我使用 UITableview 作为我的主类的子类。如下图所示

enter image description here

我在我的Mainclass中添加Tableview,它是“testingViewController”,就像这样在testingViewController.h中

#import "Inputtableview.h"
@interface testingViewController :UIViewController<UITableViewDelegate,UITableViewDataSource> {
Inputtableview *inputview;
IBOutlet UITableView *inputtbl;
}
@end

在testingViewController.m中

- (void)viewDidLoad {
btn1bool=FALSE;
if (inputview == nil) {
inputview = [[Inputtableview alloc] init];
}

[inputtbl setDataSource:inputview];
[inputtbl setDelegate:inputview];
inputview.view = inputview.tableView;
}

现在在按钮操作方法中

-(IBAction)input:(id)sender
{
btn1bool=TRUE;
}

我的子类代码“inputtableview.m”如下所示

- (void)viewDidLoad {
[super viewDidLoad];
listOfItems=[[NSMutableArray alloc] initWithObjects:@"Iceland",@"Greenland",@"Switzerland",
@"Norway",@"New Zealand",@"Greece",@"Italy",@"Ireland",nil];

array1 = [[NSMutableArray alloc] initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H", nil] ;
}

#pragma mark -
#pragma mark Table View datasource methods
-(NSInteger) tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
if (btn1bool) {
return [array1 count];
}
else {
return [listOfItems count];
}

[self.tableView reloadData];
}


-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}

NSLog(@"Row: %i", indexPath.row);
if (btn1bool) {
NSString *cellValue = [array1 objectAtIndex:indexPath.row];
cell.text = cellValue;
}
else {
NSString *cellValue = [listOfItems objectAtIndex:indexPath.row];
cell.text = cellValue;
}
return cell;
}

我们将提供任何帮助。

最佳答案

只需输入以下代码:

[inputtbl reloadData];

您的项目中需要更改一些内容,但我认为该项目只是用于测试内容。

<小时/>

您希望在按下按钮后重新加载日期,因此您调用 IBAction 中的方法。

-(IBAction)input:(id)sender
{
btn1bool=TRUE;
[inputview.tableView reloadData];
}

要在按下按钮时在 2 个数据源之间切换,您可以更改为以下代码行:btn1bool=!btn1bool;

(NSInteger) tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section
{
if (btn1bool) {
return [array1 count];
} else {
return [listOfItems count];
}
}

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 正确

关于iphone - UITableView 如何一次显示两个不同的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13312739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com