2015-07-03 514 views
12

點擊某個按鈕時,我需要刷新view controller。簡單地激活viewDidLoad()似乎沒有爲我需要做的工作。但是,當我離開view controller然後回到它,它似乎完美的工作?重新加載視圖控制器swift

如何刷新/重新加載view controller就好像我已經離開它然後再次回到它,而沒有真正離開它?

+0

究竟是你想刷新什麼? – streem

+0

您是否找到任何解決方案? –

+0

這就是我回答的另一個問題。請看我的回覆: [用新數據更新視圖控制器](https://stackoverflow.com/questions/31110923/navigate-swipe-between-articles-in-section-using-table-view-controller/ 46576097#46576097) –

回答

9

無論您在viewDidLoad中編寫的代碼是什麼,請嘗試在viewWillappear()中添加該代碼。我認爲這會解決你的問題。

4

這可能有點晚,但是你試過loadView()

+4

public func loadView()//這是子類應該創建自定義視圖層次的地方,如果它們不使用nib。 **不應該直接調用。[moreHere](http://stackoverflow.com/a/8876346/1264893) –

+0

我不認爲他是在說要直接調用它。他正在說要在那裏添加代碼。 –

6

你不應該調用viewDidLoad方法手動, 相反,如果你要重新加載任何數據或任何用戶界面,你可以這樣做:當你要重新加載數據並刷新接口

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()

+5

你如何做這個實際的刷新界面部分? –

+1

當您想重新載入時,再次調用loadData以從模型中獲取數據。在tableView中調用reloadData()或在常規視圖中setNeedsDisplay。 – Vincent

+0

//這是子類應該創建自定義視圖層次的地方,如果它們不使用nib。不應該直接調用。 –

0

在任何時候,打電話時要重新加載的viewController的意見或任何看法

<View you want to reload>.setNeedsLayout() 
<View you want to reload>.layoutIfNeeded() 
相關問題