webmagnets
webmagnets

Reputation: 2296

How can I completely reload a view so that viewDidLoad gets run again?

I would like to reload my view so that viewDidLoad redoes all of its work. How can I do that in Swift?

Upvotes: 8

Views: 20490

Answers (2)

LastMove
LastMove

Reputation: 2482

You could call ViewDidLoad manually but it is not recommended. The best thing is to put all your code inside viewDidLoad in another methods (like loadData). And call this method again when you need it.

But it depends why you need it. Often ViewWillAppear or ViewDidAppear are a better choice.

Upvotes: 0

nburk
nburk

Reputation: 22731

viewViewDidLoad and viewWillAppear are part of the view controller lifecycle and are called automatically by iOS after your UIViewController got instantiated and before the view appears on the screen. You can call them anywhere in your view controller class, but that's not at all good practice and I would never recommend you to do so!

If you have code that you want to be executed at multiple times during the lifetime of your view controller, put it into separate methods and call these from viewDidLoad and from the other parts in your code where you need them.

You can read more about the view controller life cycle in Apple's documentation.

Upvotes: 7

Related Questions