Moh*_*gab 5 storyboard tableview didselectrowatindexpath ios
我有一个故事板,其中包含来自表格单元格的segue.我想在选择行时使用某些数据设置一些属性,所以我执行以下操作:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[[ProperyManager sharedPropertyManager]setSelectedRow:[verseIds objectAtIndex:indexPath.row]];
[[ProperyManager sharedPropertyManager]setID:[poemIDs objectAtIndex:indexPath.row]];
[[ProperyManager sharedPropertyManager]setRowToReturn:[NSString stringWithFormat:@"%i",indexPath.row]];
}
Run Code Online (Sandbox Code Playgroud)
问题是,目标视图控制器的视图控制器生命周期方法(viewWillAppear等)在上面的didSelectRow方法之前被调用,因为segue在执行委托方法之前推送视图.
我怎么能绕过这个?
Raw*_*ode 14
不要将Cell从Cell创建到新VC,而是将Segue从旧VC设置为新VC并为segue指定标识符.
然后在内
didSelectRowAtIndexPath 你可以打电话
[self performSegueWithIdentifier:@"Segue" sender:self]
jrt*_*ton 14
Rawkode的回答是一个很好的解决方案-另一种是,在prepareForSegue:,你可以访问表视图(的选定行sender参数将是表视图单元格,然后你可以做[self.tableView indexPathForCell:(UITableViewCell*)sender],以获得索引路径),并设置任何你需要在那时候.
| 归档时间: |
|
| 查看次数: |
2309 次 |
| 最近记录: |