项目当中有时候会用到判断 当前控制器是哪个控制器跳转过来的
因此我们需要找到一个方法拿到 上一个导航控制器 我们可以通过遍历的方式来
获取导航控制器中 控制器的元素 下面提供了两种方式遍历 for-in <p class="p1"><span class="s1">enumerateObjectsUsingBlock</span></p><p class="p1"><span class="s1">
</span></p>
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (showDetail) {
for (UIViewController *controller in self.navigationController.viewControllers) {
if ([controller isKindOfClass:GeneralTableViewController.class]) {
return 150;
} else {
return 130;
}
}
}
return 90;
}
<p class="p1"><span class="s1"> [</span><span class="s2">self</span><span class="s1">.</span><span class="s3">navigationController</span><span class="s1">.</span><span class="s3">viewControllers</span><span class="s1"> </span><span class="s4">enumerateObjectsUsingBlock</span><span class="s1">:^(</span><span class="s2">__kindof</span><span class="s1"> </span><span class="s3">UIViewController</span><span class="s1"> * </span><span class="s2">_Nonnull</span><span class="s1"> obj, </span><span class="s3">NSUInteger</span><span class="s1"> idx, </span><span class="s2">BOOL</span><span class="s1"> * </span><span class="s2">_Nonnull</span><span class="s1"> stop) {</span></p><p class="p2"><span class="s3"> </span></p><p class="p3"><span class="s3"> }];</span></p>