2011-09-02 85 views
2

所以我正在爲iOS創建一個靜態庫。基本上,我希望人們能夠調用是這樣的:從靜態庫訪問self.view

[MyStaticLibrary showview] 

而我的靜態庫的子視圖添加到他們的最新觀點。通常,我會做這樣的事情:

CGRect mainframe = [[UIScreen mainScreen] bounds]; 
UIView *mView = [[UIView alloc] initWithFrame:mainframe]; 
//Add some stuff to the view 
[self.view addSubview:mView]; 

但Xcode是抱怨,是理所當然的,我不能,因爲我目前在我的靜態庫使用一個NSObject從靜態庫訪問self.view。無論如何,我可以從我的靜態庫訪問「self.view」,這樣我可以添加一個視圖到應用程序屏幕?

回答

3

1)您可以調整您的showview方法爲showViewInParentView:,並允許調用者爲您提供所需的視圖。

2)您可以使用[[[UIApplication sharedApplication] keyWindow] addSubview:mView]將庫的視圖直接添加到窗口中,確保它位於最前面。

我推薦#1超過#2。

+0

我測試了第二種方法......但是當我從我的stati庫調用[[UIApplication sharedApplication] keyWindow]窗口il無...爲什麼? – Safari