行をUITableView
選択すると、タンクの詳細が表示される別のビューにセグエしたい...セグエが発生しますが、デリゲートはオブジェクトなどを送信しません...私は思うデリゲートが宣言/合成され、実装されている場所などにひねりを加えた私のズボンを持っています...
のヘッダー ファイルでデリゲートを宣言する場所は次のUITableViewController
とおりです。
@class iTanksV2ListViewController;
@protocol iTanksV2ListViewControllerDelegate
- (void) iTanksListViewController:(iTanksV2ListViewController *) sender choseTank:(tank *)tank;
@end
@interface iTanksV2ListViewController : UITableViewController
@property (weak, nonatomic) id <iTanksV2ListViewControllerDelegate> delegate;
@end
そして、これは私がUITableViewControllers
m ファイルに持っているものです:
@implementation iTanksV2ListViewController
@synthesize delegate = _delegate;
- (void)viewDidLoad
{
[super viewDidLoad];
self.tankTableView.delegate = self;
self.tankTableView.dataSource = self;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.selectedTank = [self.tanks objectAtIndex:indexPath.row];
[self.delegate iTanksListViewController:self choseTank:self.selectedTank];
}
...そして、これがDetailViewController
実装ファイルのデリゲート用のコードです...
@interface tankDetailViewController () <iTanksV2ListViewControllerDelegate>
@end
-(void)iTanksListViewController:(iTanksV2ListViewController *)sender choseTank:(id)tank
{
self.tankToShow = tank;
}
他のすべての変数などは宣言されています。物事が明確になることを期待して、それらを省略しました-コードがコンパイルされ、セグエが発生しますが、デリゲートは何もしないようです!!!