【发布时间】:2014-05-04 22:15:45
【问题描述】:
需要将Job Table View Controller中单元格的数据传递到Job Detail View Controller。
使用 PrepareForSegue 将数据从 Job Table View Controller 传递到 Job Container View Controller 不是问题。
我尝试从 Job Table View Controller 发送 NSNotification,但 Job Detail View Controller 的 viewDidLoad 在 NSNotification 触发之前加载,我不要认为这是好的编程。
我已尝试委托,但 作业表视图控制器 没有对 作业详细视图控制器 的引用。
我尝试在 Job Container View Controller 中建立 Container view 的出口连接,但它是 UIView 类型,所以我找不到对 Container 视图的引用strong>Job Detail View Controller在里面吗?
这样做的正确方法是什么?非常感谢你们!
JobTableViewController.m 这行得通。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *path = [self.tableView indexPathForSelectedRow];
Job * selectedJob = [listOfJobs objectAtIndex:path.row];
[[segue destinationViewController] sendSelectedJob:selectedJob];
}
JobContainerViewController.m
Job * currentJob;
@synthesize jobDescriptionLabel;
- (void)viewDidLoad
{
[self updateFields:currentJob];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
[[segue destinationViewController] sendSelectedJob:currentJob];
}
-(void) updateFields:(Job *)job {
jobDescriptionLabel.text = job.job_name;
}
- (void) sendSelectedJob:(Job *)currentjob {
currentJob = currentjob;
}
JobDetailViewController.m
Job *job;
- (void)viewDidLoad
{
[self updateFields:job];
}
- (void) sendSelectedJob:(Job *)currentjob {
job = currentjob;
}
-(void)updateFields:(Job *) job {
// update fields
}
【问题讨论】:
-
no @EnricoSusatyo 我要求右侧的详细视图控制器。 PrepareForSegue 按照我的帖子中的说明工作。
-
有人知道答案吗?我还没有解决这个问题。
-
我不明白你为什么不能用同样的方式把数据传给detail VC。你是如何推送 JobDetailViewController 的?
-
@EnricoSusatyo 我在 JobContainerView 中添加了 prepareForSegue 确实有效。对我来说,您不应该通过视图传递数据更有意义。取而代之的是一个视图,将其发送给所有“听众”。此外 showDataOnJobDetails 只能设置一个类变量 currentjob 并且在 viewDidLoad 中我可以调用 updateFields。恐怕作业对象可能为零。
标签: objective-c xcode uiviewcontroller