2016-11-08 6 views
0

addボタンを押すと、ユーザーが新しいビューコントローラvc2に変換されるシナリオがあります。nビューコントローラまたはnセル

彼の出身国によって、必須フィールドが変更されます。例えば、彼はタスクを追加することを選択した場合、彼はtitledue datetimeを入力する必要がありますが、彼は人を追加することを選択したとき彼はcontact infoを入力する必要があります。

は、それは、2つの別々のビュー・コントローラ(vc2avc2b)または2つの場合のすべてのセルのプロトタイプが含まれている1つのテーブルビューコントローラvc2を持っている方が良いですが、私はcellForRowAtIndexPath呼び出すたびに、私は私が来るところから確認する必要があり。

開発者としては、特にn> 2のときに、ストーリーボードで異なるビューコントローラを使用する方が簡単ですが、パフォーマンスに差が生じる場合は変更されます。

ありがとうございます。

答えて

1

人を追加するタスクを追加した後も同様の次のアクションを実行している場合は、単一のビューコントローラでこのタスクを実行する方がよいと私の意見では思います。

cellForRowAtIndexPathにチェックを入れるのではなく、複数回呼び出されるためnumberOfRowsInSectionにチェックを入れます。 numberOfRowsInSectionで

は、残りはcellForRowのために同じまま

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

    OMGOrderDetailsSectionType sectionType = [[self.tableViewLayoutArray objectAtIndex:section] integerValue]; 

    if (sectionType == 0) { 
    if(self.isContactsType) { 
     return 1; 
    } 
    } 
    else if (sectionType == 1) { 
    if(self.isTaskType) { 
     return 1; 
    } 
    } 
    return 0; 
} 

ない細胞の両方のタイプを設定します。

+0

はい、次の操作は似ています。それが違うので、すでにnumberOfRowsInSectionをチェックインしています。あなたのコードに加えて、(1)ストーリーボードでセクション1にタスクセルが含まれ、セクション2に人の細胞が含まれている2つのセクションを追加する必要がありますか? (2)cellForRowAtIndexPathでセクションタイプのチェックを無視できますか? –

+1

はい。最終的にcellForRowAtIndexPathでは、両方のセクションのセルを設定することができ、表示されるセルはnumberOfRowsInSectionによって管理されます。 –

関連する問題