1

我正在尝试进行模态自定义转换,其中我需要在要转换的视图控制器中的 tableview 的第一个单元格框架。animateTransition:transitionContext当我在以下代码之后放置断点时:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [toViewController.tableView cellForRowAtIndexPath:indexPath];

我看到 tableview 以及页面上的所有其他控件都为零。

经过大量搜索后,我找到了一个类似的问题,该问题建议在推送 vc 时使用以下代码:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.02 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    [self presentViewController:detailViewController animated:YES completion:nil];
});

但这不起作用,tableview 和所有其他页面元素都为零animateTransition:transitionContext

我知道我得到 nil 是因为在视图生命周期的这一点上,尚未计算 tableview,但是没有某种方法可以在自定义转换中引用 tableview 单元格吗?

4

1 回答 1

0

最简洁的答案是不。正如您所说,只有在过渡完成后您才能使用这些东西。

在您使用 GCD 的第二个代码示例中,这只会使事情变得更糟,因为它所做的只是推迟执行实际转换 - 这仍然意味着所有元素都是零。

于 2015-05-01T16:09:48.273 回答