我有一個第三方UIViewController
,它只能用 - (id)initWithURL:(NSURL*)url
進行初始化。沒有其他init
- 家庭方法宣佈。我想將此子類用於Storyboard,因此可以自動調用類似[super initWithURL:[NSURL URLWithString:@"about:blank"]]
的東西。拋開設計模式,這只是目標。子類awakeFromNib調用超類的自定義init/setup方法?
我已經試過這在子無果:以上
- (void)awakeFromNib {
[super awakeFromNib];
if ([super respondsToSelector:@selector(initWithUrl:)]) {
[super performSelector:@selector(initWithUrl:) withObject:[NSURL URLWithString:@"about:blank"]];
}
}
給出了一個編譯器錯誤關於選擇保留的對象。現在,超initWithURL:
只是這個
- (id)initWithUrl:(NSURL *)url {
// Set url and init views
_url = url;
[self setup];
return self;
}
所以我試着打電話給[super performSelector:@selector(setup)]
從awakeFromNib
,當然私有變量_url不能從子類進行設置。我怎樣才能完成這個故事板的使用?
就是這樣。寫得很好。我從來沒有使用'initWithCoder',也沒有使用過很多故事板。謝謝。 – Chan