是否可以在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