使用initWithNibName传递的参数:

Cha*_*ara 6 iphone parameter-passing

在iphone应用程序中,我需要将一些值传递给新的viewcontroller对象,同时它是从另一个viewcontroller类中的方法创建的,所以我可以在(id)initWithNibName:new viewcontroller的方法中初始化那些值,然后我可以在viewdidLoad方法中加载这些值.

我想知道的是我如何将值(参数)传递给新的viewcontrollor的构造函数(initWithNibName)对象像java中的构造函数重载给我一些代码示例,只显示initWithNibName如何使用额外参数调用以及如何在新创建的对象谢谢......


回答


这是我在ViewControllor.h中解决问题"观察是一个具有属性的对象"的方法

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil set:(Observation *)observation;
Run Code Online (Sandbox Code Playgroud)

在我放的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;
Run Code Online (Sandbox Code Playgroud)

}

然后我在另一个班级这样称呼它

 ObsevationListView *obsevationListView = [[ObservationViewControllor alloc]  
                                          initWithNibName:@"ObservationViewControllor" 
                                          bundle:nil set:observer];
[self.navigationController pushViewController:obsevationListView animated:YES];
Run Code Online (Sandbox Code Playgroud)

它工作正常.如果有人得到这方面的帮助,我很高兴

Bol*_*ski 8

您应该在类中创建另一个初始化程序,例如

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andParam:(id)aParam {
...
self.param = aParam;
}
Run Code Online (Sandbox Code Playgroud)