Я работаю на вид на основе iPhone приложение, которое имеет следующий поток:Навигационный контроллер не Нажимать/Popping View Controllers
search -> (list | map) -> details
для выполнения переходов между видами, у меня есть UINavigationController, с поиском который является корнем. После того, как пользователь выполняет поиск, я перехожу к представлению с сегментированным элементом управления, который действует как вкладка для переключения между списком и функциональностью карты (по предложению от related question, который у меня был). Это представление содержит UIViewController, который позволяет мне переключаться между представлением списка/карты, когда пользователь удаляет сегментированный элемент управления. Я до конца этого до конца. Другими словами, я могу перейти из вида поиска в SwitchViewController, который отвечает за возможность переключения между списком и видами карты. Из SwitchViewController я также могу перейти к представлению поиска.
Как вы можете видеть из вышеупомянутого потока, я хотел бы предоставить возможность перехода в представление деталей. Каждая строка моей таблицы в представлении списка содержит кнопку раскрытия информации, позволяющую пользователю развернуть подробный вид. Проблема в том, что когда я пытаюсь вывести представление деталей в стек навигации, ничего не происходит.
Ниже представлен метод делегата (из моего контроллера списка), чтобы обрабатывать кнопку раскрытия информации. Я установил точки останова, поэтому я знаю, что код работает. Контроллер навигации просто не хочет нажимать на элемент detailController на стек (я предполагаю, что у меня нет указателя на правильный UINavigationController).
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
if (detailController == nil)
{
detailController = [[DetailsViewController alloc] init];
}
[self.navigationController pushViewController:detailController animated:YES];
}
Предполагая, что я, вероятно, отсутствует указатель навигации контроллера, я выставил свойство UINavigation в моем списке и вид карты (navigationController предназначен только для чтения) и инициализировать их с указателем навигации контроллер от моей SwitchViewController (view отвечает за переключение между видами списка/карты, когда пользователь меняет значение сегментированного элемента управления). К сожалению, это не решило проблему.
Есть ли я на правильном пути? Если да, то как я вижу, что у моего представления есть указатель на правильный контроллер навигации? Должен ли я добавить делегат, который позволяет мне вызвать функцию в SwitchViewController, которая переходит в представление деталей (это кажется грязным)?
Является ли ваше приложение на основе представления? – Warrior
Да! Спасибо за вопрос. Я обновлю свой текст, чтобы указать на это. – senfo