2012-01-08 28 views
0

我使用的大多數iPhone應用程序在使用導航流時都有一個非常微妙但很流暢的行爲。當您返回到上一個視圖時,所選項目會立即取消選擇,以便您獲得簡短的未加亮顯示。這告訴用戶他們剛纔編輯/查看的項目。UINavigationController的突出顯示和取消選擇

我的問題是,我自己的應用程序不會出現這種行爲。我使用主要是segues在xcode 4.2中進行設置,但是後面有一些代碼。

我縮小了事實,我在viewWillAppear中使用reloadData。但我需要重新加載這個從我用來添加項目到列表的模式返回。

如何/我應該在哪裏重新加載我的列表,使其包含新項目,但不會停止取消選擇/突出顯示模式工作?

回答

0

我需要重新加載這個從我用來添加項目到列表中的模式返回。

重新加載整個表在概念上很簡單,但更好的解決方案可能是調用-insertRowsAtIndexPaths:withRowAnimation:將新行添加到表中。這應該允許取消選擇動畫正常進行,並且在插入新行時您還可以獲得很好的動畫效果。

0

我猜取消選擇使用的0.25f默認的動畫時間,爲什麼不viewDidAppear:使用:

[self.tableView performSelector:@(reloadData) withObject:nil afterDelay:0.25f]; 

我相信會有更好的辦法雖然

0

執行這些步驟。

在.h文件中聲明一個int值「selectedCell」,並在viewDidLoad:方法中指定-1。 在

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

方法,做

if (indexPath.row==selectedCell){ 
cell.selected=YES; 
} 

而且在

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

方法,做

selectedCell=indexPath.row; 

它將使選定行始終強調。

相關問題