У меня есть основной вопрос, который сводит меня с ума.
У меня есть класс, наследующий от UITableViewController. Это корневой контроллер в моем контроллере навигации. У меня есть другой класс, который реализует протоколы UITableViewDelegate и UITableViewDataSource (мой делегат).
В основном, в tableView моего делегата: didSelectRowAtIndexPath: метод, я хочу выдвинуть новый контроллер.
Когда протоколы делегатов были просто реализованы UITableViewController, это было легко:
[self.navigationController pushViewController:nextController animated:YES];
Я (очевидно) не могу этого сделать в классе делегатов. Как, черт возьми, я обращаюсь к подклассу UITableViewController, чтобы получить доступ к navigationController? Это сводит меня с ума!
Основной поток:
- UITableViewController вызывает делегата
- делегат запускает tableView: didSelectRowAtIndexPath:
- в табличном представлении делегата: didSelectRowAtIndexPath :, код должен вставить новый контроллер в navigationController
- делегат не имеет ссылки на navController или TableViewController для выполнения push.
- код выдает ошибку компилятора, если я пытаюсь передать в делегат tableController или navController через свойство. поэтому я не могу дать ему ссылку на вызывающую таблицу ViewController