Установка:Отключить вернуться к предыдущему контроллеру вид навигации контроллера
После регистрации от SignUpViewController
вы идете к PostsViewController
. Они подключены через show
segue, поэтому внутри панели навигации автоматически создается кнопка < SignUp
.
Проблема:
Я хочу, чтобы скрыть эту кнопку, потому что вы никогда не должны были бы вернуться к SignUpViewController
, если вы не вышли из системы. Я думал, что удаление диспетчера представлений из стека навигации выполнит задание. Я сделал следующее:
NSArray *navVCs = [self.navigationController viewControllers];
for (UIViewController *vc in navVCs) {
if ([vc isKindOfClass:[SignUpViewController class]]) {
[vc removeFromParentViewController];
}
}
Я проверил, что SignUpViewController
был правильно удален из навигации стека, но он по-прежнему не удаляет кнопку назад.
Я также попытался установить
self.navigationItem.hidesBackButton = YES;
self.navigationController.navigationBar.userInteractionEnabled = NO;
self.navigationItem.backBarButtonItem = nil;
self.navigationItem.leftBarButtonItem = nil;
и ни один из них не удалить кнопку < SignUp
из панели навигации внутри PostsViewController
.
Решение:
Я смотрел всюду на StackOverflow, и я удивлен, что я не мог найти ответ. Заранее спасибо за вашу помощь!
Можете ли вы представить вид регистрации модально, а затем перейти к просмотру сообщений, который будет первым контроллером представления, встроенным в контроллер навигации? – Gordonium
Прямо сейчас, 'SignUpViewController' является первым контроллером представления. –
Да. Но вы можете отделить его от контроллера просмотра сообщений, чтобы не было segue, и он не встроен в контроллер nav. После того, как они вошли в систему, перейдите к контроллеру сообщений вручную (вместо использования segue) и убедитесь, что контроллер сообщений является первым, встроенным в навигационный контроллер. – Gordonium