Nếu bạn sử dụng prepareForSegue:sender:
thì bạn sẽ không có nhiều thứ để thay đổi nếu sau này bạn quyết định kích hoạt segue từ một số điều khiển bên ngoài chế độ xem bảng.
Các prepareForSegue:sender:
tin nhắn sẽ được gửi đến bộ điều khiển xem hiện tại, vì vậy tôi muốn đề nghị một cái gì đó như thế này:
- (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];
}
Trong Swift:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let path = self.tableView.indexPathForSelectedRow()!
segue.destinationViewController.detail = self.detailForIndexPath(path)
}