【问题标题】:Xcode TableView showing to different arrays one at a time PROBLEMXcode TableView 一次向不同的数组显示一个问题
【发布时间】:2011-09-03 00:16:32
【问题描述】:

所以我知道,如果你们不喜欢我的问题,你们会否决我并降低我的声誉 :( 但我需要学习并且找不到答案,所以在这里我再次冒着我的声誉风险. 现在说到重点。我要做的只是一个带有两个按钮的视图和一个按钮下的表格视图,这个表格视图需要显示一个不同的数组,具体取决于单击的女巫按钮,换句话说,我想要它做的就是单击 button1显示array1,如果我点击button2显示array2,简单!但我无法让它工作。 这是我的代码示例:

- (void)viewDidLoad
{

array1 = [[NSArray arrayWithObjects:
               @"A",
               @"B",
               @"c",
               @"D", nil] retain];

array2 = [[NSArray arrayWithObjects:
               @"1",
               @"2",
               @"3",
               @"4", nil] retain];
}

- (IBAction)btnPeriodicos:(id)sender {
displayArray = 1;
}

- (IBAction)btnRadios:(id)sender {
displayArray = 2;
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
 if (displayArray == 1) {
 return [array1 count];
 }
 if (displayArray == 2) {
 return [array2 count];
 }
 [self.tableView reloadData];
}

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

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

// Configure the cell.
cell.textLabel.textAlignment = UITextAlignmentCenter;
cell.textLabel.textColor = [UIColor blackColor];
if (menuNumberInt == 1) {
    cell.textLabel.text = [[periodicoArray objectAtIndex:indexPath.row] retain];
}
if (menuNumberInt == 2) {
    cell.textLabel.text = [[radioArray objectAtIndex:indexPath.row] retain];
}

return cell; 
 }

如果我把 numberOfRowsInSection 和 cell.textLabel.text = [[periodicoArray objectAtIndex:indexPath.row] retain] 的 [array1 count] 代替 if else 语句;该应用程序加载了填充该数组的表格,因此我猜该表格可以工作,但是如何使我的按钮更改表格单元格? 任何帮助是极大的赞赏。 谢谢

【问题讨论】:

    标签: iphone xcode


    【解决方案1】:

    您可以为 NSArray *currentArray 使用 iVar 变量。在 viewDidLoad 中,您可以定义两个数组(就像您目前所做的那样),然后将 currentArray 分配给 array1。

    然后,将所有 tableView 回调更改为对 currentArray 进行操作并摆脱 if (displayArray == x) 检查。

    在 (IBAction) 按钮处理程序中,将 currentArray 分配给适当的数组并调用 [tableView reloadData]。这将清除表格并触发所有 tableView 回调再次发生。由于 currentArray 发生了变化,所有回调都会从相应的数组中拉取数据。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-10-30
      • 2013-10-03
      • 2016-06-17
      • 2016-03-16
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多