返回时取消选择表格视图行

我在这里跟踪了Luke Redpath的建议 - 选中UItableViewCell时保持蓝色 - 在返回到原始表格视图时取消选择该行,但我无法使其工作。 实际上该方法不会被触发。

- (void)viewDidAppear:(BOOL)animated
{
  [super viewDidAppear:animated];
  [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
}

我怀疑这是因为该类不是一个UITableViewController ,而是一个UIViewController ,并将tableView作为一个属性连接到NIB。

我将如何获得相同的行为 - 即返回时取消选择?


为什么你只是不要在委托方法中取消选择它

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];

}

如果您正在使用NavigationController,则可以使用其代理完成此操作:

- (void)navigationController: (UINavigationController *)navigationController
       didShowViewController: (UIViewController *)viewController
                    animated: (BOOL)animated
{
    [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
}

但是你必须检查节目控制器是你想要的= /

[编辑]创建出口并将其链接到IB到NavigationController

@interface MyInt <UINavigationControllerDelegate>
{
    IBOutlet UINavigationController *navigation;
    ...
}
@property (nonatomic, retain) UINavigationController *navigation;
...
@end

@implementation MyInt
@syntesize navigation;

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.navigation setDelegate: self];
}
...

@end

你是否以编程方式选择行? 如果是这样,当使用[cellToBeSelected setSelected:YES];选择一行时,我遇到同样的问题[cellToBeSelected setSelected:YES];

通过使用UITableViewControllerselectRowAtIndexPath:animated:scrollPosition:方法,它可以跟踪当前选择的indexPath。

实际上,如果clearsSelectionOnViewWillAppear设置为true,则不会手动取消选择行。

链接地址: http://www.djcxy.com/p/60011.html

上一篇: Deselecting the table view row when returning

下一篇: Scrolling the table view after reloading uitableview