遷移先の画面でまえの画面によって処理を変えることってできますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
UIViewController
での遷移のことを言っているのでしたら、次の画面に渡すパラメーターによって次の画面ではそのパラメーターを見て処理を変えればいいと思います。
swift
1 2import UIKit 3 4// ViewController 5class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 } 11 12 @IBAction func pushNext(_ sender: UIButton) { 13 performSegue(withIdentifier: "Next", sender: nil) 14 } 15 16 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 17 18 if let nextVC = segue.destination as? NextViewController { 19 nextVC.beforeViewController = self 20 } 21 } 22} 23 24// ViewController1 25class ViewController1: UIViewController { 26 27 override func viewDidLoad() { 28 super.viewDidLoad() 29 30 } 31 32 @IBAction func pushNext(_ sender: UIButton) { 33 performSegue(withIdentifier: "Next", sender: nil) 34 } 35 36 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 37 38 if let nextVC = segue.destination as? NextViewController { 39 nextVC.beforeViewController = self 40 } 41 } 42} 43 44// NextViewController 45class NextViewController: UIViewController { 46 47 var beforeViewController: UIViewController! 48 49 override func viewDidLoad() { 50 super.viewDidLoad() 51 52 if beforeViewController is ViewController { 53 54 // 前画面がViewControllerだった時の処理 55 view.backgroundColor = .blue 56 } else if beforeViewController is ViewController1 { 57 58 // 前画面がViewController1だった時の処理 59 view.backgroundColor = .red 60 } 61 } 62}
投稿2016/12/30 02:53
編集2016/12/30 03:18総合スコア8490
0
ぱっと思いつくのは、get/post、リファラとかCookieで制御するとかですかね。
投稿2016/12/30 02:43
編集2016/12/30 02:45退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
Swift Xcode か。失礼。的はずれな回答してしまった^^;
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/31 02:05
2016/12/31 02:31