2016-05-15 2 views
0

У меня есть табличное представление, в котором я добавляю ячейки через кнопку «добавить» и второй контроллер представления. В настоящее время у меня есть следующая настройка кода для моего представления в таблице, и она сортирует ячейки по алфавиту всякий раз, когда приложение загружается. Моя проблема в том, что когда я добавляю новый рецепт, он автоматически не сортируется автоматически. Каков наилучший способ сделать это? Должен ли мой reloadData() находиться где-то в другом месте? Или, возможно, поместить его в контроллер Segue из диспетчера представлений обратно в режим таблицы?Повторно сортировать TableView по алфавиту

override func viewDidLoad() { 

     configureView() 

     if let savedRecipes = loadRecipes() { 
      recipes2 += savedRecipes 

      recipes2 = recipes2.sort({current, next in return current.name < next.name}) 

      recipeList.reloadData() 
     } 
} 
+0

использования [ 'NSOrderedSet'] (https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSOrderedSet_Class/). – ozgur

ответ

1

Вы можете добавить reloadData() в методы viewWillAppear() или viewDidAppear() в вашем контроллере табличного представления. Таким образом, всякий раз, когда вы возвращаетесь к просмотру, он должен показывать самые последние данные. Например:

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(animated) 
    reloadData() 
} 
+0

Спасибо! Это сработало. В итоге я включил функцию sort и reloadData() в viewWillAppear, и она отлично работала. –

0

Если рецепт класс сам по себе вы можете сделать это следующим образом:

if let savedRecipes = loadRecipes() { 
    recipes2 += savedRecipes 

    recipes2.sortUsingComparator { 
      let r1 = $0 as! Recipe 
      let r2 = $1 as! Recipe 
      if r1.title < r2.title { 
       return .OrderedAscending 
      } 
      if r1.title == r2.title { 
       return .OrderedSame 
      } 
      return .OrderedDescending 
     } 
     self.tableView.reloadData() 
} 

Это будет сортировать ваши рецепты в порядке возрастания.

+0

Нам потребуется дополнительная информация о вашем коде, но о том, как вы добавляете рецепт, если он не вызван. –

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