Кнопка «Назад» в UINavigationBar открывает сам текущий вид

(1). Я только что добавил UISearchBar в UITableView в раскадровке. Когда я щелкаю ячейку из UITableView по умолчанию, она переходит к просмотру сведений, и я могу вернуться к UITableView по умолчанию, нажав кнопку «Назад» на панели навигации. Это верно.

UITableView(BooksViewController with title "Books")
-Item 1(Selected)
-Item 2
-Item 3

DetailsView(BookDetailsViewController)
Books(Back button in navigation bar)
Item 1(View Title)

(2). Проблема в том, что когда я щелкаю ячейку из searchDisplayController.searchResultsTableView, она переходит к просмотру сведений, и я не могу вернуться к UITableView по умолчанию, нажав кнопку «Назад» на панели навигации. Программа завершается со следующей ошибкой.

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't add self as subview'
UITableView(BooksViewController with title "Books")
Search Results
Item 1(Selected)
Item 3

DetailsView(BookDetailsViewController)
Item 1(Back button in navigation bar)
Item 1(View Title)

Вы можете заметить, что заголовок кнопки «Назад» показывает заголовок представления в случае (2) и не может правильно вернуться к предыдущему представлению. Как я могу это исправить? Спасибо.


person Thein Hla Maw    schedule 16.02.2014    source источник


Ответы (1)


Я нашел проблему, отследив действие перехода в консоли. Мне не нужно выполнять собственное действие перехода при выборе ячейки. Это заставляет приложение дважды открывать просмотр подробностей. Вот почему кнопка «Назад» сама возвращает детальный вид. Удалив [self PerformSegueWithIdentifier], теперь это работает.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   if (tableView == self.searchDisplayController.searchResultsTableView) {
       [self performSegueWithIdentifier: @"segueSongsToSong" sender: self];
   }
}

to

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}
person Thein Hla Maw    schedule 16.02.2014