1

ストーリーボードで詳細開示ボタンを使用しようとしましたが、開示ボタンから新しいビューへのセグエを作成すると、テーブルセルを押したときにのみ機能し、詳細開示ボタンを押したときにのみ機能します。

どうすればいいですか?

ありがとう、

ベルンハルト

4

2 に答える 2

5

私は間違っているかもしれませんが、UITableDelegate コードを使用して実装する必要があることがわかりました。

#pragma mark - Table view delegate methods

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
    // do a segue based on the indexPath or do any setup later in prepareForSegue
    [self performSegueWithIdentifier:@"segueName" sender:self];
}

そして、あなたのprepareForSegue

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

    if([segue.identifier isEqualToString:@"segueName"]){

        NSIndexPath * indexPath =  self.sequenceTableView.indexPathForSelectedRow;
       // do some prep based on indexPath, if needed

     }
}
于 2012-06-28T01:23:05.477 に答える
0

skinnyTOD の答えは問題ありません。しかし、なぜ self.sequenceTableView.indexPathForSelectedRow; なのかわかりません。nil(0x0000000) を返します。プロパティを使用して、selectedRow をaccessoryButtonTappedForRowWithIndexPath に保存する必要があります。

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
    // do a segue based on the indexPath or do any setup later in prepareForSegue
    self.selectedRow = indexPath.row;
    [self performSegueWithIdentifier:@"segueName" sender:self];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"segueName"]) {
        // use self.selectedRow here
    }
}
于 2012-12-31T12:36:38.527 に答える