セグエではなく、プログラムでナビゲーション スタックにプッシュする必要があるビュー コントローラーがいくつかあるストーリーボード アプリがあります。私はそれを行うために次のコードを使用しています:
POCollectionViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"categoryView"];
POCategory* destination = (POCategory*)self.collections[indexPath.row];
[vc setShowingCollection:destination];
[self.navigationController pushViewController:vc animated:YES];
私の問題は、セグエを使用してView Controllerをプッシュし、「戻る」ボタンを押すと、スクロール位置が保持されることですが、上記のコードを使用して「戻る」ボタンを押すと、以前のView Controllerがスクロールして表示されることです上部のバー。
既にナビゲーション スタック上にあるはずのビュー コントローラーを再インスタンス化していますか? スクロール位置を保持するにはどうすればよいですか?
の編集
コード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 に基づいて、サーバーから一連のデータをフェッチします。