2016-09-16 3 views
1

У меня есть 3 категории:UITableView с иерархические категории -Swift прошивкой

  1. тапки
  2. Брюки
  3. Рубашки

Каждая категория может иметь несколько различных названий брендов например.

1.Sneakers> Найк, Adidas, Reeboks

2.Pants> Лис, Леви

3.Shirts> Ralph Lauren, Abercrombie

Мои пользователи выбрать из категории, а затем они могут добавьте столько именных брендов, сколько они захотят. После того, как они выбрали категорию и поставили все те бренды, которые они хотят, мне нужно 2 tableViews (или collectionViews). В первом tableView должна отображаться категория, которую они выбрали, а вторая таблица должна показывать бренды, которые они назвали в этой категории.

Моя проблема заключается в сортировке по категориям. Я знаю, как отображать все имена, которые они выбирают, но не категории, ведущие к именам.

Проблема, с которой я сталкиваюсь, заключается в том, что пользователь дважды выбирает категорию «Рубашки», для отображения таблицыView отображает категорию рубашки дважды, когда она должна отображать ее только один раз.

Я нашел this от Apple, но он не показывает примеры в Swift.

Любой аналогичный StackOverflow q/a's в Swift отлично подходит для ответа.

+0

Итак, после обновления категории, вы говорите, что рубашка показывает в два раза, что означает, что ваш массив, содержащей категорию, содержит рубашку дважды, не так ли? Если это так, используйте NSOrderedSet для удаления дубликата. Надеюсь, это поможет – Janmenjaya

+0

@ Янменджайя Я никогда не использовал его раньше, но я попробую и дам вам знать. Благодаря! –

+0

Я обновил ответ, проверьте его, чтобы увидеть использование NSOrederedSet, чтобы удалить дубликат. – Janmenjaya

ответ

1

Если ваш массив содержит дубликаты в категории. Надеюсь, он должен содержать дубликат, так как вы можете увидеть дубликат в виде таблицы, поэтому используйте удаление NSOrderedSet для удаления дубликата.

Вот демонстрационный код демонстрирует использование NSOrderedSet

Objective C Версия:

NSArray *category = [NSArray arrayWithObjects:@"Sneakers", @"Pants", @"Shirts",@"Pants", @"Shirts", nil]; 

NSLog(@"Before using ordered set : %@", category.description); 

// iOS 5.0 and later 
NSArray * newCategoryArray = [[NSOrderedSet orderedSetWithArray:category] array]; 

NSLog(@"After using ordered set : %@", newCategoryArray.description); 

Swift Версия:

let category = ["Sneakers", "Pants", "Shirts","Pants", "Shirts"]; 
NSLog("Before using ordered set : %@", category.description); 

let newCategoryArray = NSOrderedSet(array: category).array; 

NSLog("After using ordered set : %@", newCategoryArray.description); 

Выход:

Before using ordered set : (
    Sneakers, 
    Pants, 
    Shirts, 
    Pants, 
    Shirts 
) 

After using ordered set : (
    Sneakers, 
    Pants, 
    Shirts 
) 

Счастливое кодирование ...

+0

Я не смог найти эквивалентный метод в swift –

+0

@LanceSamaria, я добавил эквивалентный код Swift. Проверьте ответ и дайте мне знать. – Janmenjaya

+0

@thanks Я попробую это в нескольких. Я собираюсь опубликовать более подробное объяснение того, что я ищу. Я не уверен, будет ли ваш метод работать с ним, но я попробую. Вот ссылка http://stackoverflow.com/questions/39663089/uitableview-category-array-drill-down-swift-ios –

Смежные вопросы