是否可以在init方法上传递args?当我推送一个新视图时,我正在使用UITableViewController类和UINavigatorController:
[self.navigationController pushViewController:[[Class alloc] init] animated:YES];
我还会将一个字符串传递给该控制器,是否可能?
答案 0 :(得分:2)
这不仅是可能的,而且是正常的,也很常见。实际上,在类中有多个初始化器是很常见的,其中每个初始化器具有不同的args组合,允许您以不同的方式初始化类。
当您发现自己为一个类创建了多个初始化程序时,您应该确保遵循最佳实践,使一个初始化程序成为指定的初始化程序"。以下是a link文章,其中演示了指定初始值设定项的原理。
答案 1 :(得分:1)
当然,只需为视图控制器子类定义自己的初始值设定项:
- (id)initWithStyle:(UITableViewStyle)style andSomeParameter:(NSString *)param
{
if (self = [super initWithStyle:style]) {
myInstanceVariable = [param retain];
}
return self;
}
(这是针对UITableViewController
的子类。)