我有一個標籤欄控制器,其中一個標籤是我的主屏幕,另一個是設置頁面。在設置頁面上,用戶可以編輯隨後保存在NSUserDefaults中的內容,但當它們返回到主頁選項卡時,這些更改不會立即反映,因爲視圖已經加載。當我返回到該選項卡時,如何使視圖完全刷新?單擊標籤時自動刷新視圖
0
A
回答
0
viewDidLoad僅在您的視圖控制器的視圖首次被加載時調用 - 之後它將保留在內存中,所以一般情況下它將永遠不會再被調用,直到您創建視圖控制器的另一個實例。
因此,不要將viewDidLoad()中的邏輯寫入您可能已寫入的代碼中,將代碼寫入/放入viewWillAppear()中,此方法在出現視圖時會被調用。所以在這裏你的NSUserDefaults值將被設置爲新的值將覆蓋現有的值。
//希望我能夠幫助你以某種方式,編碼快樂:)
0
這取決於何時做你想要刷新視圖。
1.您是否想在每次打開視圖時刷新。 2.您是否想要僅在設置更改時刷新視圖?
如果它是第一個,那麼你在viewWillAppear中編寫刷新邏輯 如果它是第二個,那麼只要改變用戶設置就可以添加通知。
在HomeVC添加通知作爲觀察者和更新標籤上觀察者方法
代碼發佈通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"settingsChanged" object:nil];
代碼,用於接收通知:
在HomeVC viewWillAppear中:
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshViews:) name:@"settingsChanged" object:nil];
執行會面hod on HomeVC
- (void)refreshViews:(NSNotification *)notification {
NSLog(@"Received Notification - Someone seems to have logged in");
}
相關問題
- 1. 自動刷新MVC視圖
- 2. 刷新按鈕的標籤點擊時
- 3. 停止舊標籤及新刷新標籤時點擊
- 4. 單擊標籤時訪問標籤導航器中的視圖
- 5. 如何刷新標籤頁活動中的列表視圖?
- 6. iOS自動刷新視圖元素
- 7. 當新進程進入時自動刷新列表視圖
- 8. 刷新標籤
- 9. 自動刷新Google地圖標記
- 10. 單擊HTML元素時停止AngularJS自動刷新
- 11. 當刪除視圖時刷新自動佈局
- 12. Android Studio:編輯佈局的xml時自動刷新視圖
- 13. 當提交部分視圖的表單時刷新父視圖
- 14. 動畫刷新圖標
- 15. 瀏覽器自動刷新時自動刷新
- 16. 手動刷新局部視圖在自動ajax刷新後不起作用
- 17. 刷新視圖?
- 18. 刷新視圖
- 19. 點擊刷新自動搜索mvc
- 20. 刷新頁面鏈接自動點擊
- 21. 的Android Viewpager不刷新滾動標籤
- 22. Android:更改標籤必須刷新我的列表視圖db
- 23. 如何刷新活動?地圖視圖刷新失敗
- 24. telerik節點單擊和圖表刷新
- 25. 單擊後退按鈕時活動組不會刷新活動
- 26. jQuery按鈕點擊時自動更新視圖值
- 27. 自動刷新
- 28. 標籤和滾動視圖
- 29. 啓動活動時自動刷新
- 30. 鼠標單擊事件後刷新繪圖
如果數據顯示在表視圖或集合視圖上,那麼您可以重新加載ViewWillAppear方法中的任何一個控制器。 –
@TusharSharma數據以標籤顯示。 ViewWillAppear每次點擊標籤時都會運行嗎? –
每次出現視圖時,ViewWillAppear都會被調用。 –