在iphone中,我需要将一些值传递给一个新的viewcontroller对象,而它是从另一个viewcontroller类中的方法创建的,因此我可以在(id)initWithNibName:method中初始化这些值,然后在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];效果很好。我很高兴有人能从这里得到帮助
发布于 2011-06-06 07:33:49
您应该在类中创建另一个初始化器,如下所示
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andParam:(id)aParam {
...
self.param = aParam;
}发布于 2011-06-06 07:49:51
另一种解决方案是为该参数设置一个属性,并使用以下代码在调用之前或之后设置该属性:
initWithNibName:bundle:
https://stackoverflow.com/questions/6248944
复制相似问题