簡體   English   中英

iPhone-在viewDidAppear之前調用numberOfRowsInSection

[英]iphone - numberOfRowsInSection being called before viewDidAppear

這可能很正常,但是我對Objective-C還是陌生的。 我有一個帶有兩個視圖控制器的應用程序,兩個都是表視圖。 單擊一行后,我將第二個視圖加載到堆棧的頂部,並通過其屬性之一傳遞參數。 在第一個視圖(導航控制器默認加載)上,首先調用viewDidAppear函數,該函數從URL打開XML文件,為每個節點構建一個對象,並將所有對象推入數組。 完成此操作后,將調用numberOfRowsInSection,它返回數組的計數,一切正常。 在另一個視圖上,首先加載numberOfRowsInSection,然后調用viewDidAppear。 我真的是iphone的新手,我也不知道為什么會這樣。

謝謝!

這很正常。 整個視圖完成加載並變為可見后,將調用viewDidAppear 這包括UITableView 表格視圖又需要numberOfRowsInSection函數進行初始化。

UITableView加載之前,您有三個選項可以執行代碼:

1)將您的代碼放在-viewWillAppear -有時可能會不穩定

2)子類化UIViewController(可能您已經在這樣做)並創建一個自定義-init函數來處理您的設置

3)將您的初始化代碼放在-numberofRowsInSection 這始終是要調用的UITableViewDataSource的第一個方法。 它有點黑,但在實踐中效果很好。

也許您應該考慮將代碼移至-viewWillAppear-viewDidLoad

謝謝大家抽出寶貴的時間回復! 我發現了問題。 作為xcode / iphone / mvc的新手,我忘記了將視圖連接到IBOutlet對象。 我一生的幾個小時我再也回不到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM