将UINavigationController弹出到UITableView并显示不同的选定行



我正在创建一个应用程序,其中UITableView是它所在的UINavigationController堆栈上的第一个项目。在UITableView上进行选择将把视图推到"DetailedViewController"。在DetailedViewController中,您可以浏览填充表视图的项。

当弹出DetailedViewController,并移动回UITableView,我如何取消选择我通过DetailedViewController导航到的相应项目,并将其显示在UITableView的中心?

每个人都能看到的一个例子是Mail应用程序。当你在收件箱中进行选择时,你可以按下"DetailedViewController"。在这里,您可以浏览UITableView中填充的项。当您弹出DetailedViewController时,它将取消选择您在DetailedViewController中最后查看的相应项目。

要取消选中的行,编写以下代码viewDidAppear:方法。

// Index path for selected row
NSIndexPath *selectedRow = [_tableView indexPathForSelectedRow];
// Deselet the row with animation
[_tableView deselectRowAtIndexPath:selectedRow animated:YES];
// Scroll the selected row to the center
[_tableView scrollToRowAtIndexPath:selectedRow 
       atScrollPosition:UITableViewScrollPositionMiddle 
               animated:YES];

根据您希望动画的外观,您可以简单地取消选择当前选定的行。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
     ...
}

相关内容

  • 没有找到相关文章

最新更新