2014-02-25 29 views
0

在我的應用程序中,當用戶點擊一行時,將顯示詳細信息ViewController以顯示有關該對象的更多信息,如主/細節applicationdidSelectRowAtIndexPath有多個動作

現在,我已經在該方法中添加了第二個操作,將該行置於編輯模式以允許用戶對行進行重新排序。

我需要把這個第二個動作放在這個方法上,因爲我不想使用默認編輯按鈕來進入編輯模式。

正如您可能猜到的那樣,當用戶點擊一行時,首先會顯示詳細信息ViewController,然後關閉它後,所選行顯示重新排序控件和刪除按鈕。

這裏是我的方法的代碼:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [tableView setEditing:YES animated:YES]; 
    ToDoItem *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; 
    self.detailViewController.editToDoItem = object; 
} 

我應該怎麼做didSelectRowAtIndexPath方法內推出兩個動作,一次一個,我可以使用什麼樣的條件下,推出一個動作或另一個?

+0

你在問什麼聽起來不可能。如何在_this_視圖控制器中顯示編輯模式,並轉至_different_細節控制器。沒有人可以同時在兩個地方。你不能用同樣的手勢來表示兩個相互矛盾的東西。這正是爲什麼有一個標準的響應(點擊細節控制器)和一個標準的編輯按鈕(將表格置於編輯模式)。 – matt

+1

爲什麼不用長按切換到編輯模式?我相信在進入細節屏幕之後,從用戶的角度來看,所選行到編輯模式是沒有意義的。 – HRM

+0

@matt,感謝您的評論,但這不是不可能的。在應用商店中有應用程序使用這種行爲,如應用程序any.do,當用戶點擊行時,顯示詳細信息視圖,當用戶點擊第二個+時,該行可以移動到另一個位置。 – mvasco

回答

0

我想,最好的解決辦法是刪除的代碼行:從didSelecRowAtIndexPath方法

[tableView setEditing:YES animated:YES]; 

並將其列入在cellForRowAtIndexPath方法。