2012-01-05 51 views
0

我的應用程序在表格視圖中有一個客戶列表。當你點擊一個客戶端時,它會使用一個標準的導航控制器將你帶到一個詳細的視圖控制器。如何最好地設計我的列表細節viewcontrollers?

列表視圖控制器允許用戶輕掃以刪除客戶端。詳細的視圖控制器有一個按鈕來刪除客戶端。

當刪除一個客戶端時,我想提出一個有多個選擇的操作表。

問題:我不想在我的兩個視圖控制器中複製代碼來呈現操作表並處理操作表的結果。由於兩個視圖控制器都在刪除客戶端,因此兩種情況下的代碼都是相同的。在這種情況下是否存在被認爲是最佳實踐的設計模式?

感謝您的任何幫助。

回答

0

我想你不能在兩個viewControllers中真正使用UIActionSheet的一套代碼。但是對於非常相似的情況,我的方法如下。我希望它有幫助。

  1. 我創建了自己的自定義類,例如MySortingClass(在我的例子中,它是排序選項,例如日期升序/降序,名稱升序/降序)。這個類是NSObject的一個子類。

  2. 在我的自定義類,我宣佈,將返回,例如各種方法,選擇標題數組展現給用戶,NSSortDescriptors的陣列等

  3. 在任何我viewControllers的我需要向用戶提供一個排序選項列表,我將導入MySortingClass,alloc,init,並獲取一組選項,通過actionSheet顯示它們,並將響應作爲索引發送回MySortingClass,並返回適當的NSSortDescriptor,採取。

... 
// In MySortingClass 
- (NSArray *)arrayOfOptions; 
- (NSSortDescriptor *)sortDescriptorForSortingOptionIndex:(NSInteger)index; 
... 
... 
// In a ViewController 
MySortingClass *msc = [MySortingClass alloc] init]; 
... 
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
... 
[anArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:[msc sortDescriptorForSortingOptionIndex:buttonIndex]]]; 
... 
} 
+0

感謝您的響應。我有一個類似的想法。我很好奇看到別人如何解決這個問題。 – user1132486 2012-01-05 17:05:48

相關問題