0

これが私がすでに持っているものです。

  • XIB ファイル (UITableViewCell) からカスタム セルをロードしました。
  • このカスタム セルにはボタン A と B が含まれています
  • ボタン A を処理する IBAction を作成しました
  • MyTableView クラス (UIViewController) の XIB ファイルの上にロードされる

ここで、ボタン A のクリックされたイベントに別のビュー (おそらく XIB ファイル) をロードしたいと思います。IBAction 関数でこれを試しました。

    // Where MyTableView is a class which loads this custom cell
    // ModalView is a name of XIB File
    MyTableView *vc = [[MyTableView alloc] initWithNibName:@"ModalView" bundle:nil];
    [self.navigationController pushViewController:vc animated:YES];

しかし、「self.navigationController」でエラーが発生し、Property navigationController not found on object of type MyTableViewCell クラスと言います。これは UITableViewCell クラスが原因で発生していることを知っており、この行の自己は UIViewController オブジェクトを参照しており、awakeFromNib を使用する必要があります。またはそのようなものですが、必要なものを達成するのに十分な例が見つかりませんでした。

4

1 に答える 1

1

わかりました、私は問題を解決しました。

カスタム設計のセルを表す XIB ファイル (UITableViewCell) を取得していた cellForRowAtIndexPath 関数で、ボタンを作成し、XIB ビューからボタンを割り当ててから、IBAction をアタッチしました。

    // SimpleTableCell is the XIB filename (UITableViewCell)
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];


    UIButton *btn = [[UIButton alloc] init];
    btn = cell.btn;
    [btn addTarget:self action:@selector(smsBtnClicked:) 
                            forControlEvents:UIControlEventTouchUpInside];
于 2012-05-23T22:47:11.430 に答える