0

ストーリーボードを使用して、テーブルビュー要素にインターフェイスを割り当てる方法を教えてもらえますか?方程式ごとに異なる計算機を備えた医療用​​計算機を作成しています。別のインターフェイスにプッシュする要素を指すコードを作成するための支援が必要です。これは、方程式ごとに入力するフィールドが異なるためです(年齢、酸素レベル、糖尿病かどうか、身長など)。すべての方程式に同じフィールドが必要なわけではありません。

私はこれをやってみました:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Deselect row
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    // Declare the view controller
    UIViewController *anotherVC = nil;

    // Determine the row/section on the tapped cell
    switch (indexPath.section) {
        case 0:
            switch (indexPath.row) {
                case 0: {
                    // initialize and allocate a specific view controller for section 0 row 0
                    anotherVC = [[BmiViewController alloc] init];
                    break;
                }
                case 1: {
                    // initialize and allocate a specific view controller for section 0 row 1
                   /anotherVC = [[AaOxygenGradientViewController alloc] init];
                    break;
                }
            }
            break;
    }
}

ただし、これを行った後は、テストアラートポップアップを表示する代わりに、ストーリーボードドキュメントに元々あったもの(プログラムでインターフェイスを作成したため空になっています)を参照します。

また、テーブルビューセルの束を作成してから、ストーリーボード内の他のすべてのビューコントローラーにすべてをセグエさせることは可能ですか?

よろしくお願いします!

4

1 に答える 1

0

まず、あなたは走っていdeselectCellAtIndexPathますか?これの理由は何ですか?青いハイライトを削除しようとしているだけの場合UITableViewCellSelectionStyleは、セル(またはこのようなもの)を変更することをお勧めします。

あなたが最初の部分に何を求めているのかわかりませんが、セグエの部分にはそうです。

Storyboardセグエを設定する際tableViewControllerに、セグエするVCを相互に設定し、すべての適切な識別子を指定します。

すなわち、medicalCalulatorSeguegraphSegueuserDetailsS​​egueなど...

次に、あなたのdidSelect方法では、次のようなものがあります...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //some stuff...

    switch(indexPath.row) {
        case 0:
            [self performSegueWithIdentifier:@"medicalCalulatorSegue"];
            break;
        case 1:
            [self performSegueWithIdentifier:@"graphSegue"];
            break;
        case 2:
            [self performSegueWithIdentifier:@"userDetailsSegue"];
            break;
    }
}

これにより、選択されているセルに応じて、さまざまなViewControllerのそれぞれにセグエされます。

セルの選択を解除しない理由は、メソッドで選択したセルのにprepareForSegueアクセスできるためindexPathです...

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
于 2013-01-09T23:44:57.493 に答える