0

誰か助けてください。私はこれに非常に慣れておらず、セクションを使用しない限り問題なく機能する詳細画面にシークしようとしています。詳細に取得しようとしているファイルは、html ファイルです。(番号 1 ~ 53)。セクションなしで詳細にシークする場合は、単に htmlFile = [artikelen objectAtIndex:[path row]] を使用してシークします。

セクションを使用すると、[パス行] は番号付けを続ける代わりに [0.1] のようになります。

誰かがこの問題を解決して理解するのを手伝ってくれることを願っています。

ありがとう。

ジャコ

   [super viewDidLoad];
    artikelen = [[NSMutableArray alloc]initWithObjects:@"artikel1",@"artikel2",@"artikel3",@"artikel4",@"artikel5",@"artikel6",@"artikel7",@"artikel8",@"artikel9",@"artikel10",@"artikel11",@"artikel12",@"artikel13",@"artikel14",@"artikel15",@"artikel16",@"artikel17",@"artikel18",@"artikel19",@"artikel20",@"artikel21",@"artikel22",@"artikel23",@"artikel24",@"artikel25",@"artikel26",@"artikel27",@"artikel28",@"artikel29",@"artikel30",@"artikel31",@"artikel32",@"artikel33",@"artikel34",@"artikel35",@"artikel36",@"artikel37",@"artikel38",@"artikel39",@"artikel40",@"artikel41",@"artikel42",@"artikel43",@"artikel44",@"artikel45",@"artikel46",@"artikel47",@"artikel48",@"artikel49",@"artikel50",@"artikel51",@"artikel52",@"artikel53",@"artikel54", nil];

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 14;
}


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    NSArray *sectionTitles = [[NSArray alloc]

initWithObjects:@"Hoofdstuk I.", @"Hoofdstuk
II.",@"Hoofdstuk III.",@"Hoofdstuk IV.",@"Hoofdstuk IVA.",@"Hoofdstuk IVB.",@"Hoofdstuk    

V.",@"Hoofdstuk VA.",@"Hoofdstuk VI.",@"Hoofdstuk VII.",@"Hoofdstuk VII B.",
                                  @"Hoofdstuk VIIC.",@"Hoofdstuk VIII.",nil];

        return sectionTitles;
    }


- (NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section
{
    if ( section == 0 ) return @"Hoofdstuk I. Algemeen";
    if ( section == 1 ) return @"Hoofdstuk II. De instelling";
    if ( section == 2 ) return @"Hoofdstuk III. Samenstelling ";
    if ( section == 3 ) return @"Hoofdstuk IV. Het overleg ";
    if ( section == 4 ) return @"Hoofdstuk IVA. bevoegdheden ";
    if ( section == 5 ) return @"Hoofdstuk IVB. Hgegevens aan de ondernemingsraad";
    if ( section == 6 ) return @"Hoofdstuk IVC. Verdere bevoegdheden van de";
    if ( section == 7 ) return @"Hoofdstuk V. De centrale ";
    if ( section == 8 ) return @"Hoofdstuk VA.";
    if ( section == 9 ) return @"Hoofdstuk VI. De algemene";
    if ( section == 10 ) return @"Hoofdstuk VII.";
    if ( section == 11 ) return @"Hoofdstuk VII. A.de overheid";
    if ( section == 12 ) return @"Hoofdstuk VII. B ";
    if ( section == 13 ) return @"Hoofdstuk VIII";
    return @"Other";
}

私が使用した正しい行数を表示するには:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if ( section == 0 ) return 1;
    if ( section == 1 ) return 4;
... etcetra
return 0;
}

私が使用した正しいセルを表示するには:

if ( indexPath.section == 12  ) mijnRij += 45;   //7a
if ( indexPath.section == 13  ) mijnRij += 56;   //8

cell.textLabel.text = [artikelen objectAtIndex:mijnRij];
return cell;
4

1 に答える 1

1

より良いデータ構造を使用すると、コーディングがはるかに簡単になります。

メイン構造は辞書の配列にすることをお勧めします。各ディクショナリはセクションに一致し、2 つのキーを含む必要があります。最初のキーはセクション ヘッダーを提供し、2 番目のキーはそのセクションの行に一致する配列を提供する必要があります。

そうすれば、それほど多くの条件は必要ありません。セクション番号は使用する辞書を示し、行は辞書のサブ配列のどこを調べるかを示します。

于 2012-08-09T14:57:57.683 に答える