如何在swift3中调用API后重新加载屏幕

时间:2017-06-02 09:54:59

标签: ios swift swift3

我想在成功删除记录后重新加载整个ViewController

1。我尝试了以下解决方案,但它无效。

self.view setNeedsDisplay

2。,我也尝试了以下解决方案

UIApplication.sharedApplication().keyWindow?.rootViewController = storyboard!.instantiateViewControllerWithIdentifier("Root_View")

它正在运行,但它隐藏了button在顶部,禁用点击事件

3 个答案:

答案 0 :(得分:2)

您不应重新加载整个View Controller,只需在UI上重新加载应重新加载的元素。你可能会做这样的事情:

override func viewDidLoad() {
    super.viewDidLoad()
    updateUI()
}

func updateUI() {
    label1.text = "aa"
    label2.text = "bb"
}

因此,在从API

获取数据后再次调用updateUI()函数

答案 1 :(得分:1)

无法看到您的代码,但您可能使用了错误的帖子。 试试这个

    DispatchQueue.main.async {
      updateUIFunctions()
    }

答案 2 :(得分:0)

请尝试以下代码。

view.setNeedsDisplay()

它可能对你有所帮助..

此外,您可以在 Swift 3 目标C viewDidLoad()

中致电[self viewDidLoad];

如果你在同一个屏幕并从中进行更新,那么通过调用viewDidLoad()应该可以工作,但是如果你在另一个屏幕并且想要更新任何以前的屏幕,那么你应该使用protocol或block来更新之前的屏幕的viewController。

相关问题