Swift:重新加载视图控制器

我需要在点击某个按钮时刷新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()

这可能有点晚了,但你尝试调用loadView()吗?

在您想要重新加载viewController的View或任何视图时的任何时候调用

 .setNeedsLayout() .layoutIfNeeded()