Comment obtenir indexpath dans prepareForSegue
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Action"])
{
NSIndexPath *indexPath = [self.tbl indexPathForSelectedRow];
SecondViewController *destViewController = segue.destinationViewController;
destViewController.getString = [getArray objectAtIndex:indexPath.row];
}
}
je veux accéder à la ligne sélectionnée index
,mais montrent null
pour chaque ligne sélectionnée. veuillez m'aider?
- Pls vérifier soi-même.tbl != nul
- Vous n'avez pas fait la connexion du tbl variable à tableview dans le storyboard.
Vous devez vous connecter pour publier un commentaire.
Swift 3.0 /iOS 10
tableView.indexPathForSelectedRow
a été introduit dans l'iOS 9indexPathsForSelectedItems
, qui pourraient être utilisés comme suit:if let selectedIndexPathRow = collectionView?.indexPathsForSelectedItems?.first?.row { doStuff(with: myDataSourceArr[selectedIndexPathRow] }
Deux cas:
1)
Segue
connecté à partir de laviewController
Appel
segue
de votredidSelectRowAtIndexPath
méthode, passerindexPath
commesender
Ensuite, vous pouvez obtenir indexPath comme expéditeur dans
prepareForSegue:sender:
méthode2)segue connecté à partir de la cellule
Pas besoin de mettre en œuvre
didSelectRowAtIndexPath
méthode etperformSegueWithIdentifier:
.Vous pouvez obtenir directementsender
commeUITableviewCell
dansprepareForSegue:sender:
méthode.Comme ce
désolé, je ne comprends pas ce que vous voulez faire.
il est possible d'obtenir le
indexPath.row
grâce à cette méthode deUITAbleViewDelegate
qu'elle est appelée lorsque vous appuyez sur la cellule de votre tableView:et vous pouvez accéder à cette valeur dans la
prepareForSegue
de cette façon:J'espère que je vous ai aidé.