TableViewとSearchDisplayControllerを備えたXcodeのマスター/詳細アプリケーションがあります。
TableViewには、10個のエントリを持つNSArrayがあります。
検索バーを使用すると、クリックしたエントリが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];
}
}
}