通常情况下,当用户从细节视图中弹出时,UITableView中的选定行会被动画取消 Select .

然而,在我的例子中,我在UIViewController中嵌入了UITableView,我必须在viewWillAppear中手动执行,就像这样:

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    // For some reason the tableview does not do it automatically
    [self.tableView deselectRowAtIndexPath:self.tableView.indexPathForSelectedRow 
                                  animated:YES];  
}

这是为什么?如何解决?

推荐答案

当主ViewController来自type UITableViewController时,它有a property clearsSelectionOnViewWillAppear,这是默认值YES,因此它将自动清除 Select .

这个属性不适用于UITableView,我猜这是因为它也没有ViewWillAppear方法.

UIViewController不需要这个属性,因为它最初没有UITableView.

结论:当你不使用UITableViewController时,你必须自己实现它.

Objective-c相关问答推荐

应用程序终止时处理推送通知

Objective-c 点表示法或方括号表示法中首选什么?

等到多个网络请求都执行完毕 - 包括它们的完成块

CoreData:错误:无法在 NSManagedObject 类上调用指定的初始化程序

Xcode 的任何 ReSharper 类似功能?

self.ivar 和 ivar 之间的区别?

'if not' 的 Objective-C 预处理器指令

在objective-c中isa是什么意思?

更改 UINavigationBar 字体属性?

仅替换 NSString 中子字符串的第一个实例

如何将当前方法的名称或签名放入 NSString?

判断用户是否在连续的 UISlider 上完成滑动?

如何从 RGBA 创建 UIColor?

在我的 iOS Mail 和 Safari 应用程序中支持 Open In... 菜单项

CFURLCopyResourcePropertyForKey 失败,因为通过 URL 没有方案

如何在Objective C(NSRegularExpression)中编写正则表达式?

在字符串Objective-c中连接字符串

检测平移手势结束

在 iOS 6.0 的 Xcode 4.5 中我没有要求的日志(log)消息

Foo 类在 MyApp 和 MyAppTestCase 中都实现了.将使用两者之一.哪个是未定义的