是否可以在init方法上传递参数?我用的UITableViewController类和UINavigatorController工作,当我推新视图白衣:在 - (id)init中设置参数
[self.navigationController pushViewController:[[Class alloc] init] animated:YES];
我也想传递一个字符串给控制器,这可能吗?
是否可以在init方法上传递参数?我用的UITableViewController类和UINavigatorController工作,当我推新视图白衣:在 - (id)init中设置参数
[self.navigationController pushViewController:[[Class alloc] init] animated:YES];
我也想传递一个字符串给控制器,这可能吗?
当然,只是定义自己的初始化为您的视图控制器子类:
- (id)initWithStyle:(UITableViewStyle)style andSomeParameter:(NSString *)param
{
if (self = [super initWithStyle:style]) {
myInstanceVariable = [param retain];
}
return self;
}
(这对于UITableViewController
一个子类)。
这不仅是可能的,但它是正常的,很共同。事实上,在类中有多个初始化器是很常见的,每个初始化器都有不同的args组合,这样就可以用不同的方式初始化一个类。
当您发现自己为一个类创建多个初始化程序时,应确保遵循使一个初始化程序成为“指定初始化程序”的最佳实践。这里是a link到一篇文章,演示指定初始化的原则。
非常感谢!而对于UIViewController的子类? –
几乎相同,只是你不会在'super'上调用'initWithStyle:',但可能''initWithNibName:bundle:'。 – omz