我在iOS7中使用Xcode 5.1。在我的应用程序中,我有一个由几个部分组成的静态uitableview,每个部分都有2-3行。我使用静态表,因为这是我的设置视图控制器和内容不会改变。
在其中一节中,我有2行。每行右侧都有一个标签,类似于iPhone的General ->Auto行。
就像自动锁行一样,当用户选择它的行时,它会将其设置为另一个由几行组成的表视图控制器。每当用户在这里选择一行时,我都会显示一个复选标记。当用户退出此vc时,我将在行右侧的标签中显示他们所选内容的名称,就像自动锁示例一样。
我使用一个展开函数将所选的值传回(您可以这样说,从细节到主),这样我就知道用户选择了什么,这就是我如何设置位于行上的标签中的值。
我想要做的是能够让用户选择的最后一个值检查详细表视图行(同样,就像自动锁示例一样)。我知道他们选择了什么名字,因为我把它发送到了prepareForSegue中。我不知道如何告诉表视图哪一行要放置复选标记,因为细节表与主表没有任何连接,发送'indexPath.row‘是行不通的。因为我有少量行,所以我只需检查每一行,看看它的文本是否等于我发送的文本。不过,我不确定这是否是最好的方法,因为我希望允许用户在将来的版本中在这些标签中输入自己的文本。如果有任何想法我会很感激。谢谢!
编辑:我应该更好地澄清我的问题和我正在寻找的帮助。我在一个设置表中有2行,这两个行都指向一个详细信息表。这个明细表包含几行静态数据。当用户从这个详细信息表中选择一行时,我不知道Settings表中的哪一行正在发出请求;我只是通过展开segue将该行上的标签交回。因此,我需要能够在细节表的“viewDidLoad”上查找数据的值(从设置表发送)。我很抱歉从一开始就没把这件事说清楚。
发布于 2014-07-17 21:12:07
我只需在NSUserDefaults键下记录行(如果需要,也可以记录部分)。在viewDidAppear中,您可以设置复选标记。
这在任何情况下都是可行的。如果允许编辑并删除一行,则可以动态调整此设置。同样,更改标签的文本也是无关紧要的。
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
...
if (indexPath.section == kTrackedSection) {
NSInteger selectedRow = [[NSUserDefaults standardUserDefaults] integerForKey:kSetting];
if (selectedRow == indexPath.row) { return; }
UITableViewCell *otherCell = [tableView cellForRowAtIndexPath:indexPath];
otherCell.accessoryType = UITableViewCellAccessoryNone;
[[NSUserDefaults standardUserDefaults] setInteger:indexPath.row ForKey:kSetting];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}https://stackoverflow.com/questions/24813076
复制相似问题