A→B→C→DまたDからBに戻れるという画面遷移をします。
AからBに行く際には下記のようにBのnoの値をセットしBのviewDidLoad()でnoの値をLabelに表示しています(1)。DからBに戻る際にも改めてBのnoを変更してviewDidAppearでLabelに表示させているのですが(2)戻ってから表示が切り替わるまでにラグが出てしまいます。画面が切り替わった時には新しいnoが表示されていて欲しいのですがどうすれば実現可能でしょうか?よろしくお願いします。
1 //画面遷移 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { guard let identifier = segue.identifier else { return } if identifier == "toB" { let B = segue.destination as! B B.no = self.no } } -------------------------------------------- override func viewDidLoad() { super.viewDidLoad() Label.text = string[no] }
2 //Bへ戻る @IBAction func toB(_ sender: Any) { no = Int(arc4random_uniform(UInt32(10))) if let navi = navigationController { for vc in navi.viewControllers { if vc is CountViewController { let VC = vc as! B VC.no = self.no navi.popToViewController(vc, animated: true) } } } } --------------------------------------------------------------- override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(false) Label.text = string[no] }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/18 12:43