ios - 在 UITableView 上选择行时委托(delegate)不起作用

标签 ios uitableview ios5 uistoryboardsegue

我有一个UITableView,当我选择一行时,我想转到另一个 View ,其中显示了水箱的详细信息...发生了segue,但委托(delegate)没有将对象等发送过来...我想我的内裤在委托(delegate)的声明/合成和实现等方面发生了变化...

这是我在 UITableViewController 的头文件中声明委托(delegate)的位置:

@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 实现文件中为委托(delegate)编写的代码...

@interface tankDetailViewController () <iTanksV2ListViewControllerDelegate>
@end

-(void)iTanksListViewController:(iTanksV2ListViewController *)sender choseTank:(id)tank
{
    self.tankToShow = tank;
}

所有其他变量等都已声明,我将它们排除在外,希望它能让事情变得更清楚 - 代码编译,并且发生了转场,但委托(delegate)似乎没有做任何事情!!!

最佳答案

你提到了segues,所以我假设你正在使用 Storyboard。如果这是真的,那么就忘掉为此目的的代表吧。委托(delegate)应该是一个为另一个对象执行某些操作的对象,但您所需要的只是数据传输。

我建议在 iTanksV2ListViewController 类中使用prepareForSeque: 方法。保留当点击一行时设置 self.selectedTank 的行,然后在prepareForSegue中放置类似的内容:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    tankDetailViewController *next = (tankDetailViewController *)[segue destinationViewController];
    next.tankToShow = self.selectedTank;
}

关于ios - 在 UITableView 上选择行时委托(delegate)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9924248/

相关文章:

ios - 在 Swift 中按下特定的键盘按钮

ios - 如何在 NSFetchedResultsController 部分添加附加信息

ios - 语义问题 - 函数的隐式声明

iphone - 同一商场中两家商店之间的最短路径绘制

iphone - 在 UITableViewCell 中设置图像时,出现 <Error> : CGAffineTransformInvert: singular matrix

ios - 当一个手指仍在屏幕上时检测另一个触摸

ios - SQLite3 并不总是正常工作(无法准备或执行查询)

ios - 根据手机方向更改 UITableViews

ios - 'NSInternalInconsistencyException',原因 : 'Requested the number of rows for section (0) which is out of bounds.'

带有标题区域的 iPhone UITableView