2013-10-03 82 views
2

我有UIViewControllerUIView子類(可以說ViewSubClass)。我正在使用故事板。在mainStoryBoard.storyBord,我把一個UIView和設置自定義類ViewSubClass。現在我不想在UIViewController中創建ViewSubClass的實例,例如ViewSubClass *subClassInstance = [[ViewSubClass alloc] init]。沒有在ViewController中創建任何ViewSubClass實例,我想調用initWithCoder方法。當我運行我的應用程序時,應調用initWithCoder方法ViewSubClass。我怎樣才能做到這一點?如何調用initWithCoder?

+0

只需設置您的視圖ViewSubClass從故事板界面生成器。並且initWithCoder會在應用程序午餐時調用並訪問此視圖... – Hindu

+0

但它不會調用initWithCoder方法... – h999

+0

您可以發佈接口生成器的屏幕快照 – Hindu

回答

4

添加下面的代碼在您的視圖類.m文件

-(id) initWithCoder:(NSCoder *)aDecoder 
{ 
self = [super initWithCoder:aDecoder]; 
if (self) { 
    // Initialization code 
} 
return self; 
} 

而且在視圖類添加一個文件名,如下截屏。

enter image description here

+0

其實我已創建庫... ViewSubClass是我們的library.and文件,我使用它到單個View類應用程序...有沒有什麼機會,如果我使用庫,那麼它不能調用initWithCoder方法? – h999

+0

它應該每次調用時,如果你按照上面的相同步驟查看文件在lib或分開 – Hindu

1

偶爾,我見過initWithCoder:不叫,即使我有在Interface Builder中建立子類視圖,如圖接受的答案。

吹走XCode和模擬器的緩存解決了我的問題。

Command + Shift + k通常對於XCode來說已經足夠好了。

選擇「重置內容和設置」,爲iPhone模擬器:

iOS Simulator

+1

不知道爲什麼,但它的工作原理! – Mahesh

相關問題