2009-07-06 69 views
0

我試圖保持我的代碼清潔,並保持文件數量。我正在使用UITableViewController,我想在其上加載另一個視圖。我想這將是非常簡單的:一個筆尖中的多個視圖(addSubview)

(1)在我的.h文件中創建一個IBOutlet

@interface MyViewController : UITableViewController { 
    ... 
    UIView *downloadView; 
    ... 
} 
... 
@property (nonatomic, retain) IBOutlet UIView *downloadView; 
... 

(2)將其鏈接到我在IB視圖

(3)做這樣的事情:

self.view = downloadView; 

[self.view addSubview:self.downloadView]; 

但這不適合我。如果我做

[self.tableView removeFromSuperview]; 

然後表視圖消失,但我不知道如何從我的筆尖添加我的視圖。我以編程方式爲tableView做所有事情,但我不認爲這很重要。用UITableViewController繼承UIViewController,我認爲使用addSubview或類似的東西沒有問題。我錯過了什麼?這不應該是那麼困難的權利?

更新: 所以,如果我做到以下幾點:

UIView *newView = [[UIView alloc] initWithFrame:self.view.frame]; 
newView.backgroundColor = [UIColor greenColor]; 
[self.view addSubview:newView]; 

它(主要)是我想要的。那麼這是否意味着我正在將我的視角與IB連接起來?在IB中,我將fileOwner的類設置爲MyViewController,並在downloadView和我創建的視圖(在IB中)之間建立連接。這就是我應該做的對嗎?

回答

-1

我認爲這是您添加視圖的層次結構中的一個問題。你可以試試這個:

[UIWindow addSubview:self.downloadView]; 

看看它是否出現。或者,也許,

[self.tableView addSubview:self.downloadView]; 

否則,我認爲你有正確的想法。

+0

的UIWindow不喜歡addSubview: *** + [一個UIWindow addSubview:]:無法識別的選擇發送到類0x31a5c4e0 ***終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因:「*** + [的UIWindow addSubview:]:無法識別的選擇器發送到類0x31a5c4e0' 而我也嘗試了第二種方式,並沒有做任何事情。 – RyanJM 2009-07-06 15:44:01

相關問題