3

私のアプリには、いくつかの要素を持つ ParentViewController があります。要素の 1 つは UITableView です。

ストーリーボード内で設計した動的プロトタイプ セルを使用して、テーブルのセルを設計しました。

つまり、ストーリーボードに UIViewController があるということです。その中にUITableViewがあります。UITableView 内には、プロトタイプ セルがあります。

ここで、プロトタイプ セル内に UIButton を追加し、別の UIViewController (ChildViewController と呼びましょう) を作成し、ストーリーボード内の UIButton と ChildViewController を Segue で接続しました。

ユーザーが UIButton をクリックしたときに Segue をアクティブにするコードをどのように記述すればよいですか?

テーブル自体を作成し、動的セル内にデータを保持することができました (UIButton 以外にいくつかの UILabels があります) が、UIButton をコードに適切に接続する方法がわかりません。

UITableView のデフォルトの「選択」機能は使用したくありません。動的セル内にいくつかのボタンを配置したいからです。それぞれのボタンは、異なる ChildViewController に対して異なるセグエを派生させます。

4

1 に答える 1

1

これが私が同じ問題を解決した方法です。それが役立つことを願っています。

これを行うには、UITableViewController へのポインターをカスタム セルの初期化メソッドに渡し、そこに保存します。

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
            // ...
            CDTrackCell *cell = [tableView dequeueReusableCellWithIdentifier:strCellTableIdentifier];
            CDTrack *currTrack = [self.fetchedResultsController objectAtIndexPath:indexPath];

            [cell configureView:currTrack inTableViewController:self];

            return cell;
   }

カスタム UITableViewCell クラスにポインターを保存します。

- (void) configureView:(CDTrack*)track
 inTableViewController:(CDTracksViewController*)_tvc
{
    self.tvc = _tvc;
    // ...
}

次に、ボタンがタップされたときにセグエを実行できます。

- (IBAction)buttonAddToTracklistTapped:(UIButton *)sender {
    [self.tvc performSegueWithIdentifier:@"showAddToTracklist" sender:self];
}

より良いアイデアはありますか?

于 2012-08-29T08:55:56.073 に答える