我在 Xcode 中有一个主从应用程序,带有一个 TableView 和一个 SearchDisplayController。
在 TableView 我有一个 NSArray 有 10 个条目。
如果我使用搜索栏,DetailView 会正确显示我单击的条目。
但是,如果我不使用搜索栏并在 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
DetailViewController.h:
#import <UIKit/UIKit.h>
@interface DPDetailViewController : UIViewController
@property (strong, nonatomic) id detailItem;
@property (strong, nonatomic) IBOutlet UILabel *detailDescriptionLabel;
@end
对不起,我使用了图片,但我认为您更容易检查。:)
我希望你能帮助我!
如果有什么遗漏,请告诉我。
编辑:
在此方法中,每次 indexPath.row = 0 时都在 else 之后。我不知道如何解决它:(
- (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];
}
}
}