0

UITableViewのデータソースメソッドを実装しようとしています。

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

私はこれをコードで実行しましたが、機能します。より複雑なレイアウトのために、可能であればIBでそれを実行できるようにしたかったのです。まず、UISegmentedControlとUIButtonだけを追加しました。私のデータソースメソッドは次のようになります。

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    // Footer should just be on the last section in the grouped table.
    if (section == kNotesSection) {
        UINib *nib = [UINib nibWithNibName:@"DetailFooterView" bundle:nil];
        NSArray *views = [nib instantiateWithOwner:self options:nil];
        UIView *nibView = [views objectAtIndex:0];
        [nibView addGestureRecognizer:tapGesture];

        return nibView;
    }
    else {
        return nil;
    }
}

TableViewの下部にフッタービューが表示されます。ただし、ユーザーとの対話は発生していません。ボタンをクリックしても何も起きていません。だから私の最初の質問は、これは正しいアプローチですか?

2番目の質問、通常のUIViewController + .xibテンプレートのように、.xibに接続されたアウトレットまたはアクションがないため、ターゲット/アクションのペアを.xibに関連付けるにはどうすればよいですか。切り離されたxibをこのように使用しようとしたのはこれが初めてであり、インとアウトについてはよくわかりません。ありがとう!

4

1 に答える 1

0

これを行う:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
  // Footer should just be on the last section in the grouped table.
  if (section == kNotesSection) {

   UIView *nibView = [[[NSBundle mainBundle] loadNibNamed:@"DetailFooterView" owner:self options:nil] objectAtIndex:0];
  [nibView setUserInteractionEnabled:YES];
  [nibView addGestureRecognizer:tapGesture];
   return nibView;

  else {
    return nil;
  }
}
于 2012-09-01T05:49:11.227 に答える