在iphone应用程序中 我需要将一些值传递给一个新的viewcontroller对象,同时它是从另一个viewcontroller类中的方法创建的,所以我可以在(id)initWithNibName:new viewcontroller的方法中初始化那些值然后我可以在viewdidLoad方法中加载这些值。
我想知道的是如何将值(参数)传递给新viewcontrollor的构造函数(initWithNibName)对象,如java中的构造函数重载 给我一些代码示例,只显示initWithNibName如何使用额外参数调用以及如何在新创建的对象中检索它们 感谢...
答案
这就是我解决问题的方法“观察是一个有属性的对象” 在ViewControllor.h中我放了
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil set:(Observation *)observation;
在ViewControllor.m文件中我把
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil set:(Observation *)observation{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization on passed parameter observation object
draftObservation = observation;
}
return self;
}
然后我在另一个班级中以这种方式称呼它
ObsevationListView *obsevationListView = [[ObservationViewControllor alloc]
initWithNibName:@"ObservationViewControllor"
bundle:nil set:observer];
[self.navigationController pushViewController:obsevationListView animated:YES];
它工作正常。如果有人从这个
获得帮助,我很高兴答案 0 :(得分:8)
您应该在班级中创建另一个初始化程序,例如
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andParam:(id)aParam {
...
self.param = aParam;
}
答案 1 :(得分:0)
另一个解决方案是为该参数设置一个属性,并在使用以下代码调用之前或之后设置它:
initWithNibName:bundle: