特定のボタンがタップされたときにview controller
を更新する必要があります。単にviewDidLoad()
をアクティブ化しても、私がする必要のあることに対しては機能していないようです。ただし、view controller
をそのままにして戻った場合、完全に機能しているように見えますか?
view controller
を更新/リロードして、実際にそれを残さずに、そこに戻ったようにするにはどうすればよいですか?
viewDidLoad
に記述しているコードが何であれ、viewWillappear()
に追加します。これで問題が解決します。
ViewDidLoadメソッドを手動で呼び出すべきではありません。代わりに、データやUIをリロードする場合、これを使用できます。
override func viewDidLoad() {
super.viewDidLoad();
let myButton = UIButton()
// When user touch myButton, we're going to call loadData method
myButton.addTarget(self, action: #selector(self.loadData), forControlEvents: .TouchUpInside)
// Load the data
self.loadData();
}
func loadData() {
// code to load data from network, and refresh the interface
tableView.reloadData()
}
データをリロードしてインターフェースを更新したいときはいつでもself.loadData()を呼び出すことができます
Swift 4:
self.view.layoutIfNeeded()
これは少し遅いかもしれませんが、loadView()
を呼び出してみましたか?
ViewControllerのViewまたは任意のビューをリロードするときに、いつでも呼び出します
<View you want to reload>.setNeedsLayout()
<View you want to reload>.layoutIfNeeded()