2013-12-17 113 views
0

我有UITableView,其中如果任何行被選中,我正在存儲一些值。如果任何其他行被選中,我正在顯示一個alertView,並警告他之前的選擇將會消失。這個alerView有2個按鈕YES和NO。如果選擇YES,請繼續選擇新的行。但是,如果沒有被選中,我想重新選擇前一行。如果提問,我可以發佈代碼。但似乎更多的是邏輯問題而不是面向代碼。最後選擇行在UITableView

謝謝。

+3

那麼你的問題是什麼? – CarlJ

+0

我如何獲得最後選擇的行? – LeXeR

回答

1

第一家門店點擊的tableview指數在UITableView Delegate像下面的全局變量,

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (tableView==yourTableview) { 
     yourMemberVariable=[indexPath row]; 
    } 
} 

然後檢查yourMemberVariable in UIAlertView delegate

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if(buttonIndex == 0)//OK button pressed 
    { 
     //do something 
    }else{ 
    if(yourMemberVariable>someValue){ //perform your own conditions whatever 
     [myTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:yourMemberVariable inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop]; 
     } 
    } 
} 
+0

kk ...生病嘗試用-1初始化它。它的工作原理是 – LeXeR

+0

。 Thanx @Ulaga – LeXeR

0

很簡單。只需將前一行保存到類成員中即可。祝你好運!

+0

任何內置方法? – LeXeR

+1

AFAIK uitableview不保存歷史記錄,所以沒有內置的方法。你可以在uitableview的基礎上編寫自己的類並保存歷史記錄,但我認爲這很難。 – Dmitriy

0

跟蹤上次選擇的項目。在表格的選擇委託上,存儲在通過班級訪問的變量中選擇的內容。

NSInteger selectedRow = 0; 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    selectedRow = [indexPath row]; 
} 

現在,你知道,如果在UIAlertView中代表按NO選擇什麼元素

[myTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:selectedRow inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop]; 
+0

即使用戶第一次選擇一行,該行也會被存儲。我想在第二次選擇後才顯示味精,他正在改變這一行。在這個消息中,即使是他第一次選擇。 – LeXeR

+1

從selectedRow = -1開始。在你didSelectRowAtIndexPath檢查如果selectedRow大於或等於零,那麼你知道以前的選擇存在。 – malbrigt