2

重複の可能性:
View Controller 間でのデータの受け渡し

iOS開発初心者はこちら..

メインのViewControllerにたくさんのボタンがあります。ユーザーがそれらのボタンの1つをクリックしたときに、ラベルを持つ別のビューに移動させ、そのラベルのテキストを押すボタンによって変わります。

したがって、基本的には、メイン ViewController のボタン押下から 2 番目のビューのラベルにデータを渡すことができるようにしたいと考えています。

少し混乱するかもしれません。申し訳ありませんが、助けていただければ幸いです。

4

2 に答える 2

1

可能であれば、ストーリーボードを使用することをお勧めします。次に、各ボタンから、ストーリーボードにドラッグする新しいビューコントローラーに Ctrl キーを押しながらドラッグできます。これによりセグエがセットアップされ、メソッド prepareforseguie を使用して、新しいビュー コントローラーで使用する必要があるデータを渡すことができます。

于 2012-08-13T18:35:06.543 に答える
0

ボタン付きのViewControllerがナビゲーションコントローラにあると仮定します-おそらくルートにあります...

あなたがすることは、あなたのボタンのそれぞれにターゲットを追加することです、コードでこれはあなたの方法addTarget:action:forControlEvents:で行うことができますUIButton

例えば:

[myBtn addTarget:self action:@selector(tappedButton:) forControlEvents:UIControlEventTouchUpInside];

メソッドtappedButtonは、タップされたボタンとともにメッセージが表示されます。

- (void)tappedButton:(UIButton*)sender{
    // exploit the button
}

このメソッド内で、ボタンのタイトルを取得できます-myBtn.titleLabel.text

UIViewController次に、新しいView Controllerを作成できます(物事を単純に保ち、と呼ばれる独自のサブクラスがあるとしましょうMySimpleViewController

このクラスにはcameFrom、ボタンのタイトルを設定できるプロパティがあり、viewDidLoadのではMySimpleViewController、のプロパティ値を取得しますcameFrom。これは、メソッドの実装である可能性があります。

- (void)tappedButton:(UIButton*)sender{
    MySimpleViewController *detail = [[MySimpleViewController alloc] init];
    detail.cameFrom = sender.titleLabel.text;

    [self.navigationController pushViewController:detail 
                                         animated:YES];
    [detail release];
}

したがって、でMySimpleViewController's viewDidLoad、を作成しUILabel、textプロパティにの値をself.cameFrom指定して、を使用してビューに追加します。addSubview:

于 2012-08-13T18:33:17.400 に答える