2017-06-02 24 views
0

我想在成功删除记录后重新加载整个ViewController如何在swift3中调用API后重新加载屏幕

1.我试过下面的解决方案,但它不工作。

self.view setNeedsDisplay 

2.,我尝试以下解决方案还

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

这是工作,但它是隐藏在背面顶部button禁用点击事件

+3

你应该有一个完成块的形式的回调,然后更新UI。至于用户界面,它取决于你正在更新的内容,例如UILabels,UIImageViews?等 – Nagra

回答

0

试试下面的代码。

view.setNeedsDisplay()

它可以帮助你..

此外,您还可以在viewDidLoad()斯威夫特3而在目标C[self viewDidLoad];

如果你在同一个屏幕和更新它从它在它然后通过调用viewDidLoad()应该工作,但如果你在另一个屏幕上,并想更新任何以前的屏幕,那么你应该使用协议或块来更新以前的争夺wController。

+0

它不能正常工作 – Ragini

+0

viewDidLoad()也不能正常工作 – Ragini

+0

那么,你有没有尝试@米哈尔的代码?如果它的get工作,那么很好,否则尝试将每个声明的属性设置为“周”引用,那么'viewDidLod()'应该工作。 –

2

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

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

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

所以刚刚从API

+0

它不工作。 – Ragini

1

获取数据无法看到您的代码后,再次拨打您updateUI()功能,但你可能会使用错误的线程。 试试这个

DispatchQueue.main.async { 
     updateUIFunctions() 
    } 
相关问题