2017-06-02 62 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() 
    } 
相關問題