0
在故事板和處理.xib文件之前,我使用這段代碼在init中進行屏幕調整。使用故事板時的自定義初始化
- (id)initForNewItem:(BOOL)isNew {
self = [super initWithNibName:@"NAME" bundle:nil];
if (self) {
if (isNew) {
// Place some buttons only when isNew is true
}
}
return self;
}
然後我也實現了這個生成異常時initWithNibName直接調用,因爲我想避免的是:
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
@throw [NSException exceptionWithName:@"Wrong initializer" reason:@"Use initForNewItem:" userInfo:nil];
return nil;
}
然後另一個視圖控制器可以調用自定義init和屏幕將被設置:
MyViewController *myViewController = [[MyViewController alloc] initForNewItem:YES]; // Or NO ofcourse depending on the situation.
現在我使用的故事板和initWithNibName永遠不會被調用。相反,只有initWithCoder被調用,但此方法只能由故事板調用嗎?那麼如何在使用Storyboard時做類似的事情?