2009-12-03 71 views
0

後我有一個UITableViewController其在它的tableView:didSelectRowAtIndexPath方法,建立了一個視圖控制器,並調用的UITableViewController負載空視圖,但後來加載正確第二負載

[self.navigationController pushViewController: viewController animated:YES]

當我在根控制器中選擇一行時,第二個viewController加載但是爲空 - 表視圖加載但沒有數據。這裏沒有調用tableView:numberOfRowsInSection

當我回到頂層,然後再次選擇相同的行,視圖加載正確 - 調用方法。

爲什麼表視圖不會在第一次嘗試時調用委託方法,而是在第二次調用它們?

我是否缺少明顯的東西?

感謝

+0

更清晰的「第二個viewController加載,但是是空的」將有所幫助。你什麼意思是空的? – TechZen 2009-12-03 21:30:00

回答

1

通過使用initWithNibName而不是initWithStyle解決 - 知道這將是明顯的。

謝謝

0

當你說:

當我選擇在根 控制器,第二的viewController 負載一行但該行是空的。

您的意思是說,該視圖存在,但不包含任何數據,或者您的意思是表消失將被空白/空視圖取代?

如果是前者,則需要確保第二級視圖控制器在將數據推入堆棧之前能夠正確訪問數據,以便可以填充其視圖。

如果是後者,它聽起來像你的第二級視圖控制器第一次被調用時沒有正確初始化它的視圖。如果您使用筆尖,請在Interface Builder中檢查控制器是否有指向視圖的插座。如果以編程方式創建視圖,請檢查視圖是否在調用顯示之前正確初始化。

+0

抱歉應該更清楚了。表視圖加載但不包含數據。我將如何檢查正確的數據訪問?我的觀點是應該從數組中獲取我的數據(當我第二次加載視圖時它會這樣做)。 – joec 2009-12-03 22:40:51

+0

問題將發生在第二級視圖控制器獲取數據數組的任何地方。如果是外部檢查控制器分配的數據或訪問時間。如果它在內部生成數據,請確保在視圖出現之前調用此方法。 – TechZen 2009-12-04 01:18:04