2016-01-23 88 views
1

這聽起來像一個奇怪的問題,因爲在iOS中處理表格時總是有可用的方法viewForHeaderInSection如何獲取tableView節標題

但是,要使用該功能,需要重新加載該表的數據,這是我在這種情況下希望避免的。

我在我的UITableViewSectionHeader中有一個按鈕,我想在應用程序中的某個點上禁用它 - 再次 - 無需重新加載tableview數據。 我試圖做的是這片代碼:運行

let currentTable = self.playerTables![i] as! UITableView 
let header = currentTable.headerViewForSection(0)! as UITableViewHeaderFooterView! 
let view = header.contentView as UIView 
view.userInteractionEnabled = false 

我的應用程序崩潰,當此代碼,作爲header是零加載內容查看時。當我調用currentTable.headerViewForSection(0)!代碼時它會進行初始化,但在下一行再次爲零。

我檢查了我所指的部分是否正確,檢查過蘋果文檔和谷歌/所以一直未能找到我想要的方式訪問節標題的任何參考。 有沒有辦法?

+0

假設你沒有大量的節頭的,在viewDidLoad中創建它們,然後保存在一個數組。當系統要求一個,你可以把它拉出陣列,而不是動態創建它。現在他們不會被重複使用,並且無論視圖是否顯示,您都可以訪問該按鈕。我一直在使用tableViews的自動售貨設置。 [如果這對您有用,我會刪除此評論並將其作爲答案。] –

回答

2

如果headerview不在屏幕上(不可見),則無法觸及它。

也許故事板可以幫助你。將UIView拖入tableview。這將是您的headerview,您可以直接將控件連接到UIViewController並訪問它們。

另外,您不需要在此示例中使用viewForHeaderInSection

headerview in storyboard