У меня есть segmentedControl
и tableView
под ним.Остановить cellForRowAtIndexPath при отрезке сегментов
SegmentedControl
имеет два сегмента: «Новости» и «События».
Новости и события загружаются в var news = [News]()
в func getJson(type: Int)
.
Для новостей - news.type = 1
, для мероприятий news.type = 2
.
Мой getJson
метод:
func getJson(type: Int) {
self.news = [] // empty news array
if jsonData["type"] == type {
// save needed news to array
self.news.append(News(id: jid, title: jtitle, subtitle: jsubtitle, urlstring: jurlstring, image: jimage!))
}
}
Таким образом, проблема, когда я прокрутки и нажмите второй сегмент быстро, приложение аварии:
Поскольку между self.news = []
и self.news.append
в getJson
, здесь идет cellForRowAtIndexPath
.
Мой вопрос заключается в том, как остановить cellForRowAtIndexPath
, когда я нажимаю сегменты? Благодарю.
Что вы возвращаете в 'numberOfRowsInSection'? и вы вызываете 'reloadData', когда вы переключаете сегменты и начинаете загрузку данных? – Paulw11
Я возвращаю 'news.count'. Я звоню. Проблема заключается в том, что 'tableView' хранит заполняющие ячейки, но' getjson' does 'self.news = []' – aaisataev
Обычно вы загружаете свои данные во временный массив и затем копируете данные в 'self.news' после его загрузки, а затем call reloadData – Paulw11