UITableView - 从ViewWillAppear访问代码

时间:2012-07-18 15:48:05

标签: uitableview ios5

我想操作UITableView中的表格单元格,因为它从详细视图中返回,以提醒用户他们上次选择了哪一行。 UITableView是在IB中创建的,目前没有UITableView或任何其他句柄的@property或自定义类。显然,当用户从详细视图返回并且调用了viewWillAppear时,它存在,但我在UITableView的调试器中看不到任何句柄。

只需简单地获取IB tableView对象的句柄吗?

// - The Containing ViewController
  - (void)viewWillAppear:(BOOL)animated
  {


      [super viewWillAppear:animated];

      NSIndexPath *selected = [self.tableView indexPathForSelectedRow];

      if(selected){

        //Do something stylish with the last-selected row
        NSLog(@"Last row selected was: %@",selected);

      }
}

1 个答案:

答案 0 :(得分:0)

我通过创建NSIndexPath *的类成员并在didSelectRowAtIndexPath中设置它来解决这个问题。然后,当viewWillAppear执行时,当用户导航回fram表视图细节时,我有最后选择的行,所以我可以轻松地突出显示它或以任何我想要的方式对待它:

 //The Containing View Controller
- (void)viewWillAppear:(BOOL)animated
{

    [super viewWillAppear:animated];

     if(self.lastSelectedRow){

        [self.tableView selectRowAtIndexPath:self.lastSelectedRow animated:YES scrollPosition:UITableViewScrollPositionNone];


      }  
}