2012-03-31 4 views
0

私は、UINavigationBarとUITableViewを使って作業しているときに挿入を実装し、次にパターンをキャンセルするための良いパターンを探していました。ユーザーがすべての情報を記入した場合に最適ですio挿入とキャンセルのパターンを探しています

-(void)insertTeam 
{ 
    if(!detailViewController) { 
     detailViewController = [[TeamDetailViewController alloc] init]; 
    } 

    if(!teams) { 
     teams = [NSMutableArray array]; 
    } 
    Team *team = [[Team alloc] init]; 
    [teams addObject:team]; 
    int lastIndex = [teams count]; 

    [detailViewController setEditingTeam:[teams objectAtIndex:lastIndex - 1]]; 

    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; 

    [self presentModalViewController:navigationController animated:YES]; 

} 

:私は、私はそれを実行したときにこのコードを実行し、私のTeamsViewControllerのナビゲーションバーのボタン(screenshot)

を「挿入」持ってい

しかし、彼らが次のビューでキャンセルを押すと、私のアロラに空のオブジェクトがあります。

これを達成するための素晴らしいパターンがあると確信していますが、私はすべてのTableViewサンプルコード、2つの異なるiOSブックを見て、グーグルで試してみましたが、このパターンは見つかりませんでした。

私の考えは、以下のようなものです:

  1. ユーザーがキャンセルした場合、戻って私のTeamsViewControllerで
  2. YESに私のチームのオブジェクトでキャンセルIVARを設定し、ビューは私の最後のオブジェクトを確認する表示されたら、チームの配列を削除し、そのプロパティがキャンセルされているかどうかを確認します。そうであれば、その最後のオブジェクトを削除します。

これはこれほど滑らかではないようで、これを達成するためのよりよい方法があると考えていました。 TIA。

答えて

0

私はTeamsViewControllerをTeamDetailViewControllerの代理人にしたいと思うでしょう。デリゲートは- (void)teamCreated:(Team *)team;のようなメソッドを実装し、配列を更新します。不完全な配列の中にチームを持っていることには意味がないように思われるので、私はTeamDetailViewControllerにチームを作成させ、デリゲートコールでそれを返すようにします。キャンセル時には、コントローラをポップする以外は何もする必要はありません。

関連する問題