0

その行のアクセサリボタンを押したときにテーブル行のラベルを渡そうとしています。これは、plist内の配列のキーと一致するため、次のページで設定を読み込む配列がわかります。

これは私が現在使用しているコードですperformSegueWithIdentifier

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
SettingsViewController *destViewController = segue.destinationViewController;
destViewController.nameViewer = [viewerKeys objectAtIndex:indexPath.row];

残念ながら、最初の行を選択するたびに...それを使用NSLogすると常に同じ出力(最初の行の名前)が得られるため、私は知っています。何か案は?

乾杯、

クリス

4

2 に答える 2

1

-prepareForSegue:sender:の代わりに使用-prepareForSegue:し、以下を使用します。

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

    NSIndexPath *indexPath = [[[segue sourceViewController] tableView] indexPathForCell:sender];

    SettingsViewController *destViewController = segue.destinationViewController;

    destViewController.nameViewer = [viewerKeys objectAtIndex:indexPath.row];
}
于 2013-02-14T13:46:49.963 に答える
1

問題は、セルのアクセサリ ボタンをタップしてもセル自体が選択されないことです (アクセサリ ボタンは別のデリゲート メソッドを起動するため、これは正常な動作です) 0

ただし、デリゲート メソッド内で選択したインデックスを使用して ivar を設定し、tableView:accessoryButtonTappedForRowWithIndexPath:その ivar を宛先コントローラーに渡すことができます。これが理にかなっていることを願っています...

于 2013-02-14T13:38:28.557 に答える