我很困惑。我有一个UITableView,当我单击一行时,它使用新的UIViewController执行pushViewController。我想将数据传递给这个新的视图控制器,但是我的对象为null。这是我使用的代码:
//TableViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
MyObject *myObject = [myArray objectAtIndex:indexPath.row];
SecondViewController *vc = [[SecondViewController alloc] init];
vc.newObject = myObject;
[self.navigationController pushViewController:vc animated:YES];
}
//SecondViewController.h
@property (nonatomic, strong) MyObject *newObject;
//SecondViewController.m
@implementation SecondViewController
@synthesize newObject = _newObject;
- (void)viewDidLoad {
NSLog(@"%@", _newObject); // nil
}
这很奇怪,因为我总是以这种方式做事,并且以前总是可以工作,所以我不明白为什么返回的值为空。
谢谢你的帮助 :)
最佳答案
检查是否在其他地方(例如newObject
方法)重置init
。还将NSLog
更改为NSLog(@"%@", self.newObject);
,然后重试。