iOS PUsh横滑り復帰機能の実現方法
本論文の例では、iOS push側のスリップバック機能の具体的なコードを共有しています。参考にしてください。具体的な内容は以下の通りです。
iOSの持つプッシュのサイドスリップリターン機能をオンにする(左側のエッジゾーンだけがサイドスリップして戻ってきます。グローバル応答ではありません):
解決方法はルートビューに以下のコードを追加します。
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;
}
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。