[英]Kill a view/View controller from memory from another View Controller
我對Obj-C編程很新,所以請耐心等待。
我有一個標簽欄。 其中一個選項卡有一個表視圖控制器,可將其數據從SQL數據庫獲取到數組中。 在另一個選項卡中,它有一個重置所有內容的按鈕(刪除所有數據)。 此選項卡的視圖控制器成功刪除了SQL數據庫,但返回表選項卡時表仍然充滿了數據。
從其他視圖控制器按下按鈕時,如何從內存中卸載表視圖控制器?
如果我模擬內存警告,則表格會清除並在返回選項卡時重建。 這就是我在代碼中嘗試做的事情。
謝謝
您需要在該UITableView
上調用reloadData
。
它在內存警告期間被清除,導致視圖控制器每次收到此警告時重新創建自己的視圖(如果它當前不可見)。
我認為你可以使用NSNotifications來實現這一目標。
在第一個視圖控制器的init方法中輸入以下代碼:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tableViewDataUpdated:)
name:@"DATA_UPDATED"
object:nil];
創建一個tableViewDataUpdated方法,重新加載包含數據的數組,然后在表視圖上調用reload。
在第二個視圖控制器中,當sql數據庫被清除時,調用
NSNotification *notification = [NSNotification notificationWithName:@"DATA_UPDATED" object:nil userInfo:nil];
[[NSNotificationQueue defaultQueue] enqueueNotification:notification postingStyle:NSPostASAP];
最后在第一視圖控制器的dealloc方法中包括:
[[NSNotificationCenter defaultCenter] removeObserver:self];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.