DetailView仅显示Tableview的一个条目

时间:2012-07-17 19:47:30

标签: iphone ios xcode tableview master-detail

我在Xcode中有一个带有TableView和SearchDisplayController的Master-Detail Applicaton。
在TableView中,我有一个包含10个条目的NSArray 如果我使用搜索栏,DetailView会正确显示我点击的条目 但是,如果我不使用搜索栏并在条目上单击TableView,则每次都会向我显示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

DetailViewController.h:

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

很抱歉我使用的是图片,但我认为您查看起来比较容易。 :)
我希望你能帮帮我! 如果遗漏任何东西,请告诉我。

编辑:

在此方法之后,每次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];

    }
  }    
}

1 个答案:

答案 0 :(得分:0)

当您单击不属于searchDisplayController的tableView的单元格时,您似乎没有执行任何操作,因此请尝试将tableView:didSelectRowAtIndexPath:方法更改为

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [self performSegueWithIdentifier:@"showDetail" sender:self];
}