AccountViewControllerで戻るボタンを押すと、自分のDashboardViewControllerのラベルを自分のAccountViewControllerから更新したいと考えています。前のビューコントローラでラベルを更新する方法をスチューデント
2番目のビューから1番目のビューに変数を渡して、viewDidLoadとviewWillAppearでラベルを更新しようとしましたが、最初のビューが画面に戻ったときにラベルを更新しません。
関数に渡された文字列でラベルを更新し、その関数を2番目のビューから呼び出すことを試みましたが、ラベルがnilであるため更新できませんでした。
私の最近の試みはデリゲートを作成することでしたが、それもうまくいきませんでした。
私の代議員の試みです。
class DashboardViewController: UIViewController, AccountViewControllerDelegate {
@IBOutlet weak var welcome_lbl: UILabel!
func nameChanged(name: String){
var full_name = "Welcome \(name)"
welcome_lbl.text = "\(full_name)"
}
override func viewDidLoad() {
super.viewDidLoad()
AccountViewController.delegate = self
}
}
そして、私のAccountViewControllerに、私はこの
protocol AccountViewControllerDelegate{
func name_changed(name: String)
}
class AccountViewController: UIViewController, UITextFieldDelegate {
var info_changed = false
static var delegate: AccountViewControllerDelegate!
@IBAction func back_btn(sender: AnyObject) {
if(info_changed){
AccountViewController.delegate.name_changed(name_tf.text!)
}
self.dismissViewControllerAnimated(true, completion: nil)
}
を持っているが何とか委任プロセスをI混乱をしましたか?またはこれを行う簡単な方法はありますか?
プッシュビューコントローラとはどういう意味ですか? –
DashboardViewControllerをどのようにAccountViewControllerに取得するのか分からない。それは次のコードのようにする必要があります: 'self.navigationController?.pushViewController(accountViewController、animated:true)' –
私はナビゲーションコントローラを使用していません。それらは、セグで接続された2つの別々のView Controllerです。 –