我有一個視圖類。在這個課上,我有桌子視圖。在我的模型類中,我製作了Asynchrous ASIHTTPRequest。我希望操作成功時可以在表視圖中重新加載數據。這是做這件事的好方法。我考慮添加一個UITableView屬性來爲類建模並使用重新加載它。這是一個好方法嗎?模型類中的重載表
Q
模型類中的重載表
1
A
回答
2
當您的模型發佈通知到NSNotificationCenter時,您的表格查看註冊此通知,reloadData
收到一個通知。
內部模型,發生更改時:
[[NSNotificationCenter defaultCenter] postNotificationName:@"uniqueNotificationName"
object:self];
裏面你的表視圖控制器,在viewDidAppear註冊通知,例如:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(methodToCall:)
name:@"uniqueNotificationName"
object:nil];
並實行methodToCall:
- (void)methodToCall:(NSNotification *)notification {
[self.tableView reloadData];
}
當您完成表視圖時,例如在viewWillDisappear中:yo你需要取消註冊通知:
[[NSNotificationCenter defaultCenter] removeObserver:self];
1
當你要重新加載表中查看你可以使用這個方法之一:
如果你想重新加載所有顯示單元那麼你可以調用
[tableView reloadData];
。注意,只有顯示的單元格將被重新加載。因此,例如,如果您有10000個單元格並且只顯示其中10個單元格,則將僅調用cellForRowAtIndexPath:
單元格的單元格。如果你想重新加載特定的單元格,那麼你應該調用以下方法
UITableView
:- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
並在第一個操作數列表中提供要重新加載的單元格。如果你想重新加載
UITableView
的整個部分(或者部分的數量),那麼你應該調用- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation
並在第一個操作數列表中提供要重新加載的部分。
希望它能幫助您選擇合適的變體。
2
我認爲你的模型應該告知已更新的控制器(或其他方式使用KVO)。控制器然後應該消息視圖重新加載。
1
使用同步和gcd來加載數據。 當在主隊列中接收數據調用[自加載]時
相關問題
- 1. 類型重載
- 2. 類型重載
- 3. Typedef代碼重複。模板類型中的模板類型
- 4. 類返回類型重載
- 5. 模板類重載
- 6. 模板類表達式參數重載
- 7. 模板運算符重載中的類型衝突
- 8. 重載「opeator <<」的容器類型與C++模板類++
- 9. keras:在評估模型中加載保存的模型權重
- 10. Ember重複加載模型
- 11. 重新加載Ext.data.Store模型?
- 12. Java中的方法重載 - 使用列表類型
- 13. 重載運算符類型
- 14. 重載返回類型?
- 15. 返回類型重載?
- 16. 方法重載類型C#
- 17. 在mvc中重新加載模型
- 18. 模板類參數重載
- 19. 模板函數重載(通用型VS模板模板類型)選擇正確的過載
- 20. 在Phpunit類中加載Zend-Framework模型
- 21. C++在模板類中重載operator +
- 22. 重命名localy從模塊加載的Fortran派生類型
- 23. 混合參數類型的模板重載
- 24. 如何重命名CakePHP模型中的字段(模型/表格)?
- 25. 重載運算符[]爲非類類型
- 26. 類型類,重載和實例聲明
- 27. C++重載構造函數(表達式不接收類類型)
- 28. 如何爲另一個模板類型重載模板類方法?
- 29. C中的模板類型註冊表#
- 30. 在模板雙向鏈表類中重載下標操作符
只需調用'UITableView'的'reloadData'方法... – esqew
從哪裏可以調用此方法?從模特課上? –
難道你只想'[self.tableView reloadData];'一旦你的操作成功了嗎? – msgambel