初めての投稿になります。
presentViewControllerを呼び、モーダルを表示させ、そのモーダルに配置してあるボタン(containerView)を押下すると、モーダル側からモーダル呼び出し元にあるメゾッドを呼び出し、モーダルを閉じるという処理を書いています。
そのメゾッドの中で、呼び出し元にあるボタンの画像を変更するため、ボタンの中身にアクセスする必要があるのですが、アクセスするとアプリが落ちてしまいます。
おそらく、画面遷移中の何かしらが原因で、ボタンそのものがアクセス出来ない状態(nilなど)になってしまい、落ちていると思われるのですが、原因と対処方がわからない状態です。
ご教授お願いいたします。
swift
1 2 3class OriginViewController : UIViewControllerTransitioningDelegate{ 4 5// 画像が変わるボタン 6@IBOutlet var _createActionsButton: UIButton! 7 8// 上記のボタンと同じ 9@IBAction func moveModalAction(sender: AnyObject) { 10 11// ストーリーボード指定 12let storyboard = UIStoryboard(name : "MainStoryboard", bundle: nil) 13 14// 次のシーンに移動 15let nvc = storyboard.instantiateViewControllerWithIdentifier("TransitionViewController") 16navigationController?.pushViewController(nvc, animated: true) 17self.presentViewController(nvc, animated: true, completion: nil) 18 } 19 20// モーダル側から呼び出される 21func CalledToModalMethod(){ 22 23// 画像作成 24let newButtonImage : UIImage = UIImage(named : "ABCImage")! 25 26// ↓ここで落ちる 27**self._createActionsButton**.setBackgroundImage(newButtonImage,forState: .Normal) 28} 29} 30
swift
1class TransitionViewController : UIViewController{}
swift
1class TransitionViewContainerController : UIViewController{ 2 3// モーダル画面のボタン押下 4@IBAction func pushButton(sender: AnyObject) { 5 6// モーダル削除 7self.dismissViewControllerAnimated(true, completion: nil) 8 9// 呼び出し元関数を呼ぶ 10_ = NSTimer.scheduledTimerWithTimeInterval(0.0, target : OriginViewController(), selector : #selector(OriginViewController.CalledToModalMethod), userInfo : nil, repeats : false) 11 } 12}
###試したこと
画像の切り替えはもともと出来ており、CalledToModalMethod場所以外では、正常に切り替わることを確認済み。
###補足情報(言語/FW/ツール等のバージョンなど)
Xcode7.3.1
言語swift2.2
以上になります。
回答1件
あなたの回答
tips
プレビュー