我有用戶輸入基於UITableView的形式,其中每個單元格包含輸入控件,UITextField或UITextView。我已將「下一個」和「上一個」按鈕添加到文本字段的附件視圖中,以便用戶可以在文本字段中向前和向後導航。我有一種方法可以控制文本字段並使其成爲第一響應者。到目前爲止,一切正常。迭代通過UITableViewCells的奇怪行爲
在我的方法是設置第一個響應者,我打電話是得到下一個單元一個輔助方法,無論是去向前或向後:
- (UITableViewCell*)nextFormCell:(UITableViewCell*)lastCell isForward:(BOOL)forward
{
NSIndexPath* path = [_formTableView indexPathForCell:lastCell];
NSInteger rowIndex = forward ? (path.row + 1) : (path.row - 1);
UITableViewCell* nextCell = [_formTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:rowIndex inSection:path.section]];
return nextCell;
}
展望未來(下)完美的作品和該方法始終返回一個單元格。但是,後退(前一個),該方法有時返回nil。我已經驗證rowIndex包含正確的值。這沒有什麼意義。如果我向前傳遞一個rowIndex並返回一個單元格,爲什麼它不會在同一個索引單元上執行相同的操作?
是否有任何已知的問題,通過UITableView單元向後導航?謝謝!
最有可能是因爲上面的行不在屏幕上,所以單元格不存在... – Wain 2015-04-02 15:48:34
表格視圖控制器可能釋放不在視圖中的單元格,這就是爲什麼下一個單元格工作正常因爲在視圖中顯示),但以前沒有。不確定,只是一個猜測。 – 2015-04-02 15:49:03