2013-09-30 42 views
2

我正在一個簡單的用戶界面上工作,但遇到調用removeFromSuperview後遇到問題。removeFromSuperview後調用addSubview

在我的viewController 有一個IBOutlet UITableView

@property (strong, nonatomic) IBOutlet UITableView *tableView; 

根據數據的狀態,我從我的viewControllers視圖中刪除的實現代碼如下。

[self.tableView removeFromSuperview]; 

到目前爲止很好,視圖被刪除。當使用調試器時,我仍然可以看到我的viewController對tableview有一個有效的句柄。當我調用addSubview時,該問題開始於下一行。

[self.view addSubview:self.tableView]; 
[self.tableView setDataSource:studyResult]; 
[self.tableView reloadData]; 

它似乎什麼都不做,我看不到任何UI的變化。我試圖在tableView上設置框架,但仍然沒有結果。

有沒有人看到過這種行爲?

+0

'self.view'是否有效? (特別是'self.view == self.tableView'?) – sapi

+0

兩個對象看起來都是有效的,並且不相等。 '

回答

0

嗨喬你能給我更多的代碼,看看你會怎麼樣?我得到的是,你有你的控制權和一個桌面視圖視圖裏面,你想拍攝只是當你有你的數組與數據?如果是這樣,爲什麼你不設置隱藏表格視圖,當你沒有數據?每次刷新數據,你必須也使用方法爲reloadData刷新表

+0

Joe我告訴你,因爲當你刪除你的表時,它是從ARC發佈的,所以當你試圖將它讀到視圖中時什麼也不是發生是因爲表格不存在 –

+0

當我使用alpha值來顯示和隱藏表格時,事情很好。我寧願刪除並添加視圖,是不是「更清潔」?即使我有一個有效的指向tableView的指針,我也沒有意識到該表正在被釋放。謝謝您的幫助! –

0

根據數據的狀態表的時候,我刪除的tableview從我viewControllers查看。

考慮使用表視圖繼承另一個視圖控制器,而不是在單個視圖控制器中交換表視圖。或者,如果新數據是舊數據的子集,則保留表視圖並過濾其數據。

相關問題