Как загрузить правильные кончики при выборе отсортированной строки? - PullRequest
0 голосов
/ 27 июля 2011

Я сортирую UITableView как в этом ответе Как отсортировать по алфавиту UITableView Секционированный? .

Проблема теперь в том, что UITableView не выдвигает правильные ViewControllers, потому что в моем приложении есть 2 локализации, английская и итальянская. Для английского отлично работает, а для итальянского нет.

Код, который я использую, таков, как предлагается в этом ответе Нажатие View Controllers в UITableViewController Grouped :

* * 1010

Есть идеи для этого?

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

Ваша проблема полностью логична и не требует изменений в вашем коде.Когда вы сортируете массив tableView, тривиально, что didSelectRowAtIndexPath портится при выборе строк.

Это может быть потому, что вы реализовали что-то вроде

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

if (indexPath.section == 0)
   {
    if (indexPath.row ==0)
         // PushViewController to view 1 //

    if (indexPath.row ==1)
         // PushViewController to view 2 //

   }

if (indexPath.section ==1)
   // Do something like before

Еслиэто ваш случай, тогда да, когда вы сортируете tableView, вы будете толкать контроллеры представления ПЛОХОЙ ПУТЬ.

Я предлагаю вам взять некоторые свойства в каждой строке и проверить это, нажимая контроллеры представления.Например, если у вас ... (скажем) есть строка 1, которая должна быть определенной буквой, цифрой или словом, вы можете проверить это и соответственно нажать pushViewController.

Но это будет работать, только если вы знаете,все элементы в tableView (не говоря уже о сортировке).

Вы можете проверить что-то вроде ...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

 UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];

 if (selectedCell.textLabel.text = @"1")
   // push view controller to view 1

 if (selectedCell.textLabel.text isEqualToString: self.lifeStyle) 
    // push view controller to lifeStyleViewController

    // here lifeStyle is a NSString property // 

Вы можете проверить что угодно, если вы логически устанавливаете и присваиваете свои свойствав методе cellForRowAtIndexPath и логически установите его таким образом, чтобы при выполнении tableView reloadData после сортировки поток didSelect оставался таким же.

Дайте нам знать, если у вас все еще есть проблемы.

0 голосов
/ 27 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...