UINavigationBar中的后退按钮正在打开当前视图

时间:2014-02-16 12:29:54

标签: uitableview uisearchbar xcode-storyboard

(1)。我刚在Storyboard的UITableView中添加了UISearchBar。当我从默认的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)中的视图标题,并且无法正确返回上一个视图。我该如何解决?感谢。

1 个答案:

答案 0 :(得分:0)

我通过在控制台中跟踪segue操作找到了问题。我不需要在细胞选择中做我自己的segue动作。它使应用程序打开两次详细信息视图。这就是为什么Back按钮返回自己的细节视图的原因。通过删除[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
{
}