UITableView不记得它的滚动位置

时间:2010-05-10 20:21:54

标签: iphone cocoa-touch interface-builder

我可以发布代码,但我不太清楚从哪里开始。我有一个带有自定义单元格的UITableView,位于三级UINavigationView方案的中间层。当我深入到底层并查看有关我的数据的详细信息时,然后使用左上角的后退按钮,我的表格视图会一直滚动到顶部,而不是向下滚动到我上次看到它时的位置。我应该在哪里看看这个?

编辑:

这是EventsTableViewController中的代码,用于加载EventsDetailViewController的实例并将其推送到导航控制器上:

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

    NSMutableArray *events = [DataManager sharedDataManager].eventList;

    Event *selectedEvent = [events objectAtIndex:[indexPath row]];
    EventsDetailViewController *detailController = [[EventsDetailViewController alloc] initWithNibName:@"EventsDetailView" bundle:nil];
    [detailController loadEvent:selectedEvent];

    MyAppDelegate *del = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
    [del.navigationController pushViewController:detailController animated:YES];
    [detailController release];

}

我的EventsTableViewController中没有关于重新加载表的内容,据我所知 - 我还没有实现viewWillAppear或viewDidLoad或其中任何一个。

4 个答案:

答案 0 :(得分:2)

你是否有机会重新加载你不应该的桌子?例如,在ViewWillAppear方法中?

答案 1 :(得分:0)

每当我点击导航的这个级别时,我都不小心地实例化了我的表视图的新副本。现在这一切都已修复,这不再是问题了。

答案 2 :(得分:0)

我有一个非常相似的问题。当我去chatView,这是一个属于navigationController的UIViewController,并有一个tableView作为子视图,然后我滚动到某个点,然后我回去,然后我回到chatView,它开始于又来了。我在chatView的loadView中分配tableView,所以每次我回来时都会重新分配tableView。但是,这不是标准吗?如何像iPhone消息应用程序一样滚动到底部并在底部显示滚动条几秒钟?

以下是代码:

http://github.com/acani/acani-chat/blob/master/Lovers2/Classes/ChatViewController.m#L184

谢谢!

马特

答案 3 :(得分:0)

你在做什么:

[self presentViewController:navController animated:YES completion:nil];

其中self是tableviewcontroller?尝试一下:

[self.navigationController presentViewController:navController animated:YES completion:nil];