我有一个故事板应用程序,它有一些视图控制器需要以编程方式推送到导航堆栈上,而不是使用 segues。我正在使用以下代码来做到这一点:
POCollectionViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"categoryView"];
POCategory* destination = (POCategory*)self.collections[indexPath.row];
[vc setShowingCollection:destination];
[self.navigationController pushViewController:vc animated:YES];
我的问题是,当我使用 segues 推送视图控制器并按下“后退”按钮时,滚动位置被保留,但是当我使用上面的代码并按下“后退”按钮时,我以前的视图控制器会出现滚动顶部的酒吧。
它是否重新实例化应该已经在导航堆栈上的视图控制器?如何保留滚动位置?
编辑
代码setShowingCollection:
-(void)setShowingCollection:(POCategory*)collection
{
self->showingCollection = collection;
self.title = collection.name;
self.HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
self.HUD.delegate = self;
[self.HUD showWhileExecuting:@selector(buildDisplayItems) onTarget:self withObject:nil animated:YES];
}
该buildDisplayItems
方法根据显示集合的 ID 从服务器获取一堆数据。