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

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

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

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

Q&A

解決済

1回答

1162閲覧

【Swift】dismissで閉じて再度ページ遷移するとクラッシュする

nakamu

総合スコア82

Swift

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

0グッド

0クリップ

投稿2019/05/01 22:32

編集2019/05/02 12:17

1度閉じてもう1度同じ画面に遷移するとクラッシュします

イメージ説明

swift

1// 遷移元 2import UIKit 3 4class AbcViewController: UIViewController { 5 6 @IBOutlet weak var scrollView: UIScrollView! 7 // ScrollScreenの高さ 8 var scrollScreenHeight:CGFloat! 9 // ScrollScreenの幅 10 var scrollScreenWidth:CGFloat! 11 12 var screenSize:CGRect! 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 17 screenSize = UIScreen.main.bounds 18 // ページスクロールとするためにページ幅を合わせる 19 scrollScreenWidth = screenSize.width 20 scrollScreenHeight = screenSize.height 21 22 setupFirebase() 23 } 24 25 func setupFirebase() { 26 27 // 自作セルをテーブルビューに登録する 28 let communityXib = UINib(nibName: "CommunityTableViewCell", bundle: Bundle(for: type(of: self))) 29 30 // 描画開始の x,y 位置 31 let px:CGFloat = 0.0 32 var py:CGFloat = 0.0 33 34 let communityView = communityXib.instantiate(withOwner: self, options: nil).first as! UIView 35 communityView.isUserInteractionEnabled = true 36 print("あああ") 37 let gesture = UITapGestureRecognizer(target: self, action: #selector(AbcViewController.btnClick(sender:forEvent:))) 38 39 communityView.addGestureRecognizer(gesture) 40 self.scrollView.addSubview(communityView) 41 42 // 描画開始設定 43 var viewFrame:CGRect = communityView.frame 44 viewFrame.size.width = self.scrollScreenWidth 45 viewFrame.size.height = self.scrollScreenHeight 46 viewFrame.origin = CGPoint(x: px, y: py) 47 communityView.frame = viewFrame 48 // 次の描画位置設定 49 py += (self.screenSize.height) 50 51 // スクロール範囲の設定 52 let nHeight:CGFloat = self.scrollScreenHeight * CGFloat(1) 53 self.scrollView.contentSize = CGSize(width: self.scrollScreenWidth, height: nHeight) 54 } 55 56 @objc func btnClick(sender:UITapGestureRecognizer, forEvent event: UIEvent) { 57 print("ムカつく") 58 performSegue(withIdentifier: "toTest", sender: nil) 59 } 60 61} 62

swift

1//遷移先 2import UIKit 3 4class DefViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 } 9 10 @IBAction func closePage(_ sender: Any) { 11 self.dismiss(animated: true, completion: nil) 12 } 13} 14

イメージ説明

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

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

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

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

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

MasakiHori

2019/05/02 00:26

コンソールに表示されるエラーすべてを質問に追加してください。
nakamu

2019/05/02 00:43

エラー内容が出ません
nakamu

2019/05/02 03:26

画像追加しました lldbとでるだけです
nakamu

2019/05/02 12:17

コード追加しました
guest

回答1

0

自己解決

2箇所修正して解決しました

Swift

1let gesture = UITapGestureRecognizer(target: self, action: #selector(self.btnClick(_:))) 2 3@objc func btnClick(_ sender:UITapGestureRecognizer) { 4 print("ムカつく") 5 performSegue(withIdentifier: "toTest", sender: nil) 6}

投稿2019/05/02 19:58

nakamu

総合スコア82

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問