DetailView показывает только одну запись Tableview

У меня есть приложение Master-Detail в Xcode с TableView и SearchDisplayController.
В TableView у меня есть NSArray с 10 записями.
Если я использую панель поиска, DetailView правильно отображает запись, которую я щелкнул on.
Но если я не использую панель поиска и щелкаю запись в TableView, DetailView каждый раз показывает мне первую запись TableView.
Что я могу сделать, чтобы это исправить?

MasterViewController.m: http://i.imgur.com/ZS1Oe.png

MasterViewController.h:

#import <UIKit/UIKit.h>  
@interface DPMasterViewController : UITableViewController  
@property (nonatomic, strong) IBOutlet UITableView *tableView;  
@end  

DetailViewController.m: http://i.imgur.com/AkVJ8.png

Деталивиевконтроллер.h:

#import <UIKit/UIKit.h>  
@interface DPDetailViewController : UIViewController  
@property (strong, nonatomic) id detailItem;  
@property (strong, nonatomic) IBOutlet UILabel *detailDescriptionLabel;  
@end 

Извините, что использую картинки, но думаю, вам будет проще проверить. :)
Надеюсь, вы сможете мне помочь!
Если чего-то не хватает, просто скажите мне.

РЕДАКТИРОВАТЬ:

В этом методе после else каждый раз indexPath.row = 0. Я не знаю, как это исправить :(

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showDetail"]) {
    DPDetailViewController *destViewController = segue.destinationViewController;

    NSIndexPath *indexPath = nil;

    if ([self.searchDisplayController isActive]) { 
        indexPath = [self.searchDisplayController.searchResultsTableView indexPathForSelectedRow];
        destViewController.detailItem = [searchItemList objectAtIndex:indexPath.row];
    } else {
        indexPath = [self.tableView indexPathForSelectedRow];
        destViewController.detailItem = [itemList objectAtIndex:indexPath.row];

    }
  }    
}

person Schlodi    schedule 17.07.2012    source источник
comment
Не могли бы вы попытаться описать свою проблему немного лучше? Проблема в подробном представлении или в главном представлении?   -  person Dan F    schedule 17.07.2012
comment
В моем MasterView есть SearchBar с SearchDisplayController и TableView. Если я ищу запись в TableView (с SearchBar) и нажимаю на нее, то View переключается на DetailView и показывает мне метку с текстом из записи. Эта часть работает корректно. Но когда я не ищу с помощью SearchBar (я нажимаю на запись в TableView), представление переключается на DetailView, и метка каждый раз показывает текст из записи номер 1. -> Я нажимаю на запись 2 и в DetailView Ярлык показывает запись 1   -  person Schlodi    schedule 18.07.2012


Ответы (1)


Похоже, вы не выполняете никаких действий, когда нажимаете на ячейку tableView, которая не является частью searchDisplayController, поэтому попробуйте изменить метод tableView:didSelectRowAtIndexPath: на

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [self performSegueWithIdentifier:@"showDetail" sender:self];
}
person Sascha    schedule 17.07.2012
comment
Спасибо за ваш ответ, но теперь приложение вылетает, и я получаю эту ошибку: 2012-07-17 22:55:11.532 APP[449:f803] nested push animation can result in corrupted navigation bar 2012-07-17 22:55:11.914 APP[449:f803] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted. 2012-07-17 22:55:11.923 APP[449:f803] Unbalanced calls to begin/end appearance transitions for <DPDetailViewController: 0x6e706f0>. - person Schlodi; 18.07.2012
comment
Как вы подключили этот переход к своему tableView в своей раскадровке? - person Sascha; 18.07.2012
comment
Нажмите Segue от Cell к Detail. --- Идентификатор: showDetail --- Стиль: Push - person Schlodi; 18.07.2012
comment
О, хорошо, в таком случае мой ответ неверен - сохраните исходный метод tableView:didSelectRowAtIndexPath:. Тогда не знаю, что не так, извините. - person Sascha; 18.07.2012
comment
Хорошо, спасибо. Я думаю, что ваша идея была правильной, потому что метод предназначен только для SearchDisplayController. Должен ли я добавить команду else для обычного TableView? - person Schlodi; 18.07.2012