我有一个用数据填充的UITableView(文本和图像)。当用户点击特定的行项时,它将转到detailViewController,它将所选行项的文本和图像填充到下一个视图控制器中。
我正在使用prepareForSegue而不是didSelectRowAtIndexPath。
titleForRow:indexPath.row in:indexPath.section和imageForRow:...方法是为每个行项填充标题(cell.textLabel.text)和image(cell.imageView.image)。我没有使用数据模型,因为这只是在detailViewController(UNFDetailLoginTableViewController)上显示的模板
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"addLoginToDetailLoginTVC"])
{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
UNFDetailLoginTableViewController *targetVC = (UNFDetailLoginTableViewController *)navController.topViewController;
NSIndexPath *indexPath = [self.addLoginTableView indexPathForCell:sender];
targetVC.loginNameTextField.text = [self titleForRow:indexPath.row in:indexPath.section];
targetVC.detailLoginImage.image = [self imageForRow:indexPath.row in:indexPath.section];
NSLog (@"%@", [self titleForRow:indexPath.row in:indexPath.section]);
}
}
点击特定行后,它会切换到detailLoginTableViewController,但数据不会填充。但是,NSLog会记录应该传递给detailLoginTableViewController的正确数据。请帮忙。谢谢你。
答案 0 :(得分:1)
如果目标viewController的属性是IBOutlets
,那么因为在加载destionation视图之前没有设置它们,你需要将数据传递给intermediate属性,然后传递给{{1}的viewDidLoad方法设置你的网点。
targetVC
在你的UNFDetailLoginTableViewController.h中:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"addLoginToDetailLoginTVC"])
{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
UNFDetailLoginTableViewController *targetVC = (UNFDetailLoginTableViewController *)navController.topViewController;
NSIndexPath *indexPath = [self.addLoginTableView indexPathForCell:sender];
targetVC.text = [self titleForRow:indexPath.row in:indexPath.section];
targetVC.image = [self imageForRow:indexPath.row in:indexPath.section];
NSLog (@"%@", [self titleForRow:indexPath.row in:indexPath.section]);
}
在你的UNFDetailLoginTableViewController.m中,在viewDidLoad中:
@property (strong, nonatomic) NSString *text;
@property (strong, nonatomic) UIImage *image;