質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1371閲覧

SwiftのSwipeGestureRecognizerの使い方

torkia

総合スコア24

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/12/21 03:07

###前提・実現したいこと
swift3で、スワイプでページめくりをさせたいのですが、SwipeGestureRecognizerを使ったのですが、進むのも戻るのも全て右開きでページがめくられてしまいます。左にスワイプした時は右開き、右にスワイプした時は左開きにするにはどうすればよいでしょうか。

下記のコードで訂正・追加箇所などありましたら教えて頂きたいです。
その他の方法などもありましたらご教授頂けますと嬉しいです。
よろしくお願い致します。

###該当のソースコード

Swift3

1 2override func viewDidLoad() { 3 super.viewDidLoad() 4 5 //左にスワイプ 6 let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(swipeAction(swipe:))) 7 leftSwipe.direction = UISwipeGestureRecognizerDirection.left 8 self.view.addGestureRecognizer(leftSwipe) 9 //右にスワイプ 10 let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(swipeAction(swipe:))) 11 rightSwipe.direction = UISwipeGestureRecognizerDirection.right 12 self.view.addGestureRecognizer(rightSwipe) 13} 14 15 16func swipeAction(swipe:UISwipeGestureRecognizer) { 17 switch swipe.direction { 18 case UISwipeGestureRecognizerDirection.right: 19 performSegue(withIdentifier: "backView", sender: self) 20 case UISwipeGestureRecognizerDirection.left: 21 performSegue(withIdentifier: "goThird", sender: self) 22 default: 23 break 24 } 25 } 26 27

###補足情報(言語/FW/ツール等のバージョンなど)
Swift3 xcode8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

swift

1performSegue(withIdentifier: "backView", sender: self)

これでは元の画面に「戻る」のではなく、元の画面に「進む」ことになってしまいます。

swift

1self.navigationController?.popViewController(animated: true)

これで「戻る」になります。(NavigationController使ってますよね?)

投稿2017/12/21 04:08

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

torkia

2017/12/21 06:48

ご回答ありがとうございます。 教えて頂いたコードで「戻る」ことができました。 ありがとうございました。 ちなみに、NavigationControllerを使っていない場合の方法も、 お時間ありましたら教えて頂けると嬉しいです。
torkia

2017/12/21 08:42

ご回答ありがとうございます。 この方法だとpresent Modallyになってしまいますが戻ることができました。 さきほど、最初に教えて頂いたコードについて質問ですが self.navigationController?.popViewController(animated: true) の方法ですと、遷移はできるのですが "Expression of type "UIViewController?" is unused." と警告がでてしまうのと、Navigationのボタンでも前のページに戻るようになってしまいます。(別の固定ページに遷移させたい)自分で色々やってみたのですが、行き詰まっております。 お時間ありましたら教えて頂けると幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問