2

3D Touch のピーク アンド ポップ機能をアプリのテーブル ビューに実装しました。私はピーク ビューに別の、より凝縮されたビュー コントローラーを使用しています。ポップでユーザーをフル バージョンのビューに移動させたいと思います (Instagram アプリと同様のスタイルで)。

どうすればこれを行うことができるかを理解しようとしていますか?ピークをインスタンス化するときにコードでそれを行う方法がわからないので、考えられる唯一のことは、ポップの直後に完全なビューにセグエすることですか?

誰にもアイデアはありますか?

編集:

これは私が意味する種類のシステムです:

ここに画像の説明を入力

4

2 に答える 2

0

あなたはあなた自身の質問に答えたと思います。フル ビューに直接移動します。viewControllerToCommitオン ポップを表示することは必須ではありません。その要約された viewController 参照は、完全なビューに何を渡すかを決定するためだけに使用できます。たとえば、詳細ビューの場合は、詳細の派生元である要約ビューでオブジェクトを渡します。

-(void)previewingContext:(id<UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit
{
   SomeClass *detailObj = viewControllerToCommit.detailObject;
   DetailVCClass *detailViewControllerFull = [[DetailVCClass alloc] initWithObject:detailObj];

   // Present the full VC
   [self presentViewController:detailViewControllerFull animated:YES completion:nil];

   // Alternatively, using Nav controller, you might pop onto the stack
   [self.navigationController pushViewController:detailViewControllerFull animated:YES];
}

もちろん、ストーリーボードを使用しているので、それに応じて調整します。

要点は、peek で提示した要約ビューへの参照を提供するからといって、これがポップしなければならないビューであるとは限らないということです。彼らがそれを命名したことは役に立ちませんviewControllerToCommit

于 2015-10-17T11:41:43.750 に答える