【发布时间】:2011-10-05 20:11:28
【问题描述】:
我的 UITableView 通过 PopOverViewController 打开,所以如何在应用加载后自动加载这些单元格之一,
MainViewController 上的单元格选择过程
- (void)setDetailItem:(id)newDetailItem {
if (detailItem != newDetailItem) {
[detailItem release];
detailItem = [newDetailItem retain];
//---update the view---
label.text = [detailItem description];
}
}
在 TableViewController 中选择单元格:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
myAppDelegate *appDelegate =
[[UIApplication sharedApplication] delegate];
appDelegate.viewController.detailItem = [list objectAtIndex:indexPath.row];
}
我在 TableViewController 中使用此代码但不起作用!这意味着按下 popOver 按钮后,代码只会突出显示单元格!
[myTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:0];
我在不同的方法中使用了上面的代码,例如 viewDidAppear , viewWillAppear 和 didSelectRowAtIndexPath 和 ...
谢谢
【问题讨论】:
-
如果您希望调用
selectRowAtIndexPath:animated:scrollPosition:会导致您的tableView:didSelectRowAtIndexPath:被调用,那么根据文档不会发生这种情况:“调用此方法 -selectRowAtIndexPath:animated:scrollPosition:- 不会导致代表接收tableView:willSelectRowAtIndexPath:或tableView:didSelectRowAtIndexPath:消息,也不会向观察者发送UITableViewSelectionDidChangeNotification通知。” -
那么有什么解决办法吗?
-
您可以自己做this 或致电
tableView:didSelectRowAtIndexPath:(在代表上)。
标签: ios xcode uitableview