Теперь я создаю приложение для iOS на базе Core Data и хочу, чтобы пользователь нажимал на ячейку в UITableViewController, которая основана на Core Data и NSFetchedResultsController, чтобы заставить его перейти к другому контроллеру представления, и он может видеть детали.Перейдите к другому контроллеру представления, используя prepareForSegue: sender: или tableView: didSelectedRowAtIndexPath:
В приложении шаблона шаблона Master-Detail iOS, когда пользователь нажимает на какие-либо ячейки, контроллер просмотра перемещается к контроллеру подробных представлений с помощью раскадровки segue для отображения подробных элементов.
Однако я не знаю, почему этот метод, prepareForSegue: sender:
, может реагировать на нажатие пользователя и вызываться для перехода к подробному представлению. Если вы используете UITableView, существует также один метод делегата tableView: didSelecteRowAtIndexPath:
, который должен точно реагировать на действие пользователя.
Фактически, когда я попытался написать последний метод, чтобы перейти к контроллеру подробного представления, переход завершился неудачно, так как я, по-видимому, назвал оба метода одновременно.
Так что мой вопрос, 1), как метод prepareForSegue: sender:
может реагировать на действия касания пользователя и, соответственно, обрабатывать его внутреннюю реализацию, и 2) если я могу использовать как prepareForSegue: sender:
и tableView: didSelecteRowAtIndexPath:
, которые следует использовать?
Независимо от способов использования, я хочу использовать NSFetchedResultsController для извлечения подробных данных прослушиваемой ячейки из Persistent Store и отображения их в подробном контроллере представления. Если это так, то где я должен писать извлеченный код (либо в том или ином методе выше, либо в методе viewDidLoad:
контроллера детального представления)?
Я использую iOS 7 и Xcode 5. Спасибо.
Удаленный ответ, потому что путаница в именах методов сделала мой ответ полностью вне базы. Я отправлю новый ответ. – nhgrif