2011-06-26 56 views
0

我試圖顯示UITableView作爲UIView的子視圖。顯示作爲子視圖添加的UITableView中的數據

當我觸發下面的操作時,顯示視圖,但不包含任何數據。

- (IBAction)youwin 
{  
    UITableView *HSView = [[UITableView alloc] initWithFrame:CGRectMake(200,200,500,600)] ; 
    [self.view addSubview:HSView]; 
} 

它看起來像HSView.m文件中的代碼沒有觸發。

HSView.h導入到主控制器中。

我錯過了什麼?在你的代碼

回答

1

幾個問題是: -

  1. 作爲存儲器管理通話是不均衡您正在泄漏內存。您需要在將其添加爲子視圖後釋放您創建的實例。
  2. 當創建UITableView的實例時,您需要設置delegatedataSource屬性以使其正常工作。 dataSource對象是提供內容的對象,如果沒有它,您將得到一個空表視圖。
  3. 你提到HSView.h所以我在想HSView是一類。在這種情況下,UITableView *HSView不正確。如果你想實例化HSView,然後做HSView * hsView = ...。如果它是UITableView的一個子類,那麼第2點也會適用。
+0

你好,感謝您比我的問題;-) 是的,你是對的,HSView是一個獨立的類更好的答案,所以我把它改爲: 'HSView * hsView = [[UITableView的頁頭] initWithFrame:CGRectMake(200,200,500,600)]; [self.view addSubview:hsView]; [hsView reloadData];' 但是我需要添加這個嗎?如果我做的應用程序失敗... '[hsView setDelegate:self]; [hsView setDataSource:self]; ' 我知道我必須釋放它。 我必須道歉我的基本問題... –

+0

首先它應該是'HSView * hsView = [[HSView alloc] initWithFrame:CGRectMake(200,200,500,600)style:UITableViewStylePlain];'你會需要爲'HSView'對象設置委託和數據源來顯示數據。 –

+0

另一件事是'self'類應該採用'UITableViewDelegate'和'UITableViewDataSource'協議並實現填充數據所需的方法。 –

相關問題