我对 Objective-C 和 iOS 应用程序开发还很陌生,所以如果我的问题的答案很简单,我深表歉意。我正在尝试将 GTGift 对象的指针从一个视图控制器发送到另一个。当我输入以下代码时,对象被发送并存储在第二个视图控制器的实例变量中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
GTGift *selectedGift = [[[GTGiftStore sharedStore] allGifts] objectAtIndex:[indexPath row]];
GTDetailViewController *dvc = [[self storyboard] instantiateViewControllerWithIdentifier:@"detailVC"];
[dvc setDetailGift:selectedGift];
[[self navigationController] pushViewController:dvc animated:YES];
}
但是,当我在第一个视图控制器中输入此代码时:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
gift = [[[GTGiftStore sharedStore] allGifts] objectAtIndex:[indexPath row]];
GTDetailViewController *dvc = [[self storyboard] instantiateViewControllerWithIdentifier:@"detailVC"];
[[self navigationController] pushViewController:dvc animated:YES];
}
而第二个视图控制器中的这段代码:
- (void)viewWillAppear:(BOOL)animated {
GTGiftsViewController *gvc = [[self storyboard] instantiateViewControllerWithIdentifier:@"giftsVC"];
detailGift = [gvc gift];
NSLog(@"%@", detailGift);
}
detailGift 返回空值。
我一生都无法理解为什么,如果我可以使用类似于不起作用的代码段的方法,这对我的应用程序来说会更实用。如果有人能为我照亮这个话题,或者为我指出不同的方向来完成相同的任务,我将不胜感激!