【问题标题】:UITableView doesn't remember its scroll positionUITableView 不记得它的滚动位置
【发布时间】:2011-12-03 05:08:11
【问题描述】:

我可以发布代码,但我不太确定从哪里开始。我有一个带有自定义单元格的 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 或任何这些。

【问题讨论】:

  • 您可以从将底层推送到导航控制器的任何位置发布代码吗?

标签: iphone cocoa-touch interface-builder


【解决方案1】:

您是否有机会在不应该出现的地方重新加载表?以 ViewWillAppear 方法为例?

【讨论】:

  • 在我的表控制器中?不,我还没有实现任何这些 viewWill... 或 viewDid... 方法。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    代码如下:

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

    谢谢!

    马特

    【讨论】:

    • 尝试将您的表创建业务放在-viewDidLoad 而不是-loadView。还可以查看 UITableView 中的程序化滚动功能,有一些方法可以显式滚动到底部单元格。
    【解决方案4】:

    你在做什么:

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

    self 是 tableviewcontroller 在哪里?试试这个:

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

    【讨论】:

    • 我也遇到了类似的问题,只是觉得我的解决方案也会有所帮助。
    猜你喜欢
    • 2013-09-21
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多