iOS PUsh横滑り復帰機能の実現方法


本論文の例では、iOS push側のスリップバック機能の具体的なコードを共有しています。参考にしてください。具体的な内容は以下の通りです。
iOSの持つプッシュのサイドスリップリターン機能をオンにする(左側のエッジゾーンだけがサイドスリップして戻ってきます。グローバル応答ではありません):

- (void)viewWillAppear:(BOOL)animated
{
 [super viewWillAppear:animated];
 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
  [self.navigationController.interactivePopGestureRecognizer setEnabled:YES];
  self.navigationController.interactivePopGestureRecognizer.delegate = self;
 }
}
ナビゲーションコントローラのルートビューでのジェスチャーの起動を防ぐために

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
 if (self.childViewControllers.count == 1) {
  return NO;
 } else {
  return YES;
 }
}
このようにルートビューの横でスライドして戻って操作します。そして、プッシュすると効果がなく、画面が詰まります。コードはもう次のVCにpushされましたが、画面はまだルートビューに留まっています。
解決方法はルートビューに以下のコードを追加します。

-(void)viewDidAppear:(BOOL)animated{
 [super viewDidAppear:animated];
 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
  self.navigationController.interactivePopGestureRecognizer.enabled = NO;
 }
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。