【问题标题】:UISegment Control in UITableViewUITableView 中的 UISegment 控件
【发布时间】:2012-08-23 07:24:31
【问题描述】:

我在表格视图中添加了一个段控件,我的问题/问题是我需要根据选定的段在表格视图单元格中显示文本。

我遵循了一些教程,因为它们根据所选的段在标签中为我提供了文本。我也使用了segmentControl.selectedIndexPath。那么任何人都可以告诉我如何根据所选的段将该对象数组设置为我的表格视图单元格?

如果我的英语有任何错误,请纠正我。

请帮助我。 非常感谢您的帮助。

【问题讨论】:

  • 你更新数据源对吗?
  • 你问的是 tableView 数据源对吗?@Bourne
  • 是的。您需要更新 tableview 数据源。
  • 是的,我更新了 tableview 委托和数据源 @Bourne.with 没有更新,即使我得到了 tableview。能够获得 tableview 和那个段控制。

标签: iphone uitableview xcode4.2 uisegmentedcontrol


【解决方案1】:

首先,您必须将数据划分为不同的数组,具体取决于您的要求,即 segmentControl 的数量。

这里如果有三个段控件,则在表格视图的委托方法中创建三个数组,根据段控件的选定索引更改数组以在表格视图中显示。

如果segmentControl.selectedIndex == 0 然后array1 如果== 1 然后array2 和如果== 2 然后array3

在表视图的所有委托和数据源方法中。并且在段控件的selecedIndexChange:方法调用reload table。

快乐编码:)

编辑 1

对于分段控件的索引更改的表格视图中的更改数据,您必须有一个IBOutlet 用于tableView,并使用IBOutlet 来更改数据,使用[tableView reloadData]; 此处tableViewIBOutlet 用于表格视图。

快乐编码:)

【讨论】:

  • 如果需要任何帮助,请随时询问:)
  • 嗨@Aalok Parikh,我已经完成了你上面提到的所有这些,在我的屏幕截图中,如果我选择另一个段,表数据保持不变..即使我实现了基于段选择的索引..我需要编写一个按钮操作 -(IBAction) segmentedControlIndexChanged。我没有得到需要在那里写的逻辑......请帮助我。
  • 在您的 tableView:cellForRowAtIndexPath: 方法中放置 if-else if-else 部分,并在该部分中使用适当的数组返回数据以在单元格中显示:)
  • if (segmentControl.selectedSegmentIndex == 0) { cell.textLabel.text = [weekVolOppAry objectAtIndex:indexPath.row]; } if (segmentControl.selectedSegmentIndex == 1) { cell.textLabel.text = [weekendVolOppAry objectAtIndex:indexPath.row]; } if (segmentControl.selectedSegmentIndex == 2) { cell.textLabel.text = [monthVolOppAry objectAtIndex:indexPath.row]; }
  • 您是否为表格视图设置了 IBOutlet? tableView 是您的表格视图的 IBOutlet。并且只放一行,例如 [tableView reloadData];就是这样。 :)
【解决方案2】:

tableview的常用; 在控制器中,您有一个包含对象的数组,可以说 _tableObjects 你已经在你的控制器数据源方法中实现了

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     UITableViewCell *cell =......
     .................
     cell.labelText.text = [_tableObjects objectAtIndex:indexPath.row].name;
     return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
   return _tableObjects.count;
}

因此,如果是这样,您可以在代码中的某处更改 _tableObjects 数组。

_tableObjects = myOtherArray;
[self.tableView reloadData];

【讨论】:

  • 对不起@Mert,我不明白这个...:(
  • 这是表格视图的基础知识。如果它们对您没有意义,那么我强烈建议您阅读developer.apple.com/library/ios/#documentation/userexperience/…
  • 我的意思是这不适用于我的上下文@Mert。我知道你在链接中发送的那些基础知识。
  • 除非您提供一些代码,否则我无法为您提供更多帮助。
  • 我刚刚编辑了我上面的问题,如果你理解我的上下文,请帮助我...@Mert
猜你喜欢
  • 2012-02-05
  • 2021-02-17
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多