Если вы используете, prepareForSegue:sender:
то вам не нужно будет так много менять, если вы позже решите запустить переход из какого-либо элемента управления за пределами табличного представления.
prepareForSegue:sender:
Сообщение отправляется на текущий контроллер представления, так что я хотел бы предложить что - то вроде этого:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Assume self.view is the table view
NSIndexPath *path = [self.tableView indexPathForSelectedRow];
DetailObject *detail = [self detailForIndexPath:path];
[segue.destinationViewController setDetail:detail];
}
В Swift:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let path = self.tableView.indexPathForSelectedRow()!
segue.destinationViewController.detail = self.detailForIndexPath(path)
}