2012-01-05 11 views
0

私のアプリは、クライアントのリストをテーブルビューで持っています。クライアントをクリックすると、標準ナビゲーションコントローラを使用して詳細ビューコントローラに移動します。list-detail viewcontrollerを最適に設計するにはどうすればいいですか?

リストビューコントローラを使用すると、ユーザーはスワイプしてクライアントを削除できます。詳細ビューコントローラには、クライアントを削除するボタンがあります。

クライアントを削除するときに、いくつかの選択肢があるアクションシートを提示したいと思います。

質問:アクションシートを提示し、アクションシートの結果を処理するために、両方のビューコントローラにコードを複製したくありません。両方のビューコントローラがクライアントを削除しているので、コードは両方のインスタンスで同じです。この場合、ベストプラクティスとみなされるデザインパターンはありますか?

ありがとうございました。

答えて

0

私は両方のviewControllerでUIActionSheetのコードを実際に使用することはできないと思います。しかし、非常に似たような状況のために、私のアプローチは次のとおりでした。私はそれが助けて欲しい

  1. 私は独自のカスタムクラスを作成します。 MySortingClass(私の場合、日付の昇順/降順、昇順/降順などのオプションをソートしていました)。このクラスはNSObjectのサブクラスです。私は、例えば、返されますさまざまな方法を宣言し、私の​​カスタムクラスで

  2. など、ユーザーに表示するオプションのタイトルの配列、NSSortDescriptorsの配列、そのI私viewControllersのいずれにおいても

  3. 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

関連する問題