在视图出现之前进行 UITableView 选择

Posted

技术标签:

【中文标题】在视图出现之前进行 UITableView 选择【英文标题】:Make UITableView selection before view appears 【发布时间】:2010-02-18 14:05:56 【问题描述】:

我正在为 UITableView 构建详细视图。详细视图包含一个有两行的 UITableView,我希望在打开详细视图时选择第一个。我试过在[viewWillAppear]中使用[selectRowAtIndexPath:animated:scrollPosition]的方法:

- (void) viewWillAppear:(BOOL)animated   
    [[self tableView] selectRowAtIndexPath:[NSIndexPath indexPathForRow:kStartDateRow inSection:kSection]  
                                  animated:NO  
                            scrollPosition:UITableViewScrollPositionNone];  

但是,选择不受此影响,并且在[viewDidAppear] 中使用它意味着一旦视图移动到位,选择就会更改。如何在详细视图出现在屏幕上之前进行选择?

您可以在“设置”应用中看到我想要的行为示例。转到常规 > 日期和时间 > 设置日期和时间。

【问题讨论】:

请显示您在 viewWillAppear 中尝试过的代码以及您遇到的错误(如果有)。 你去。代码格式有问题,我希望它是可读的。 【参考方案1】:

您没有提及任何错误,但尝试在 selectRowAtIndexPath 行之前执行 [[self tableView] reloadData]。

【讨论】:

这完全有效!感谢您的回答,但我对它为什么起作用感到困惑。 在这种情况下,tableView 似乎直到 viewWillAppear 之后才开始调用 reloadData。这个:developer.apple.com/iphone/library/documentation/UserExperience/… 和这个:developer.apple.com/iphone/library/documentation/UserExperience/… 可能有助于理解。

以上是关于在视图出现之前进行 UITableView 选择的主要内容,如果未能解决你的问题,请参考以下文章

选择 UITableViewCell 时 UITabBar 消失

UITableView 中的单元格在 iOS 中选择之前不会更新(swift)

移动到显示 UITableView 的弹出窗口中的下一个视图

更新数据异步后重绘 UITableView

UITableView 顶部的透明视图

如何将 uitableview 选择与 indexpath 值居中