2014-02-16 3 views
0

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

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) и не может вернуться к предыдущему виду правильно. Как это исправить? Благодарю.

ответ

0

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

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

в

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
} 
Смежные вопросы