У меня есть вид входа. Если логин успешно выполнен, я хочу свою программу, перейдите в главное окно.Программа перерывов в PerformSegueWithIdentifier для push segue
Я использовал modal segue, между именем входа и основным видом.
Однако после достижения основного вида, я хочу использовать нажимные перетекают и, к сожалению, я столкнулся следующее исключение:
Terminating app due to uncaught exception 'NSGenericException', reason:
'Could not find a navigation controller for segue 'routeList'.
Push segues can only be used when the source controller is managed by an
instance of UINavigationController.'
Вот те функции, которые я дал команду для «модального Segue» в " login controller ":
//LoginController.m
- (IBAction)loginTapped:(id)sender {
[self performSegueWithIdentifier:@"login" sender:@{@"foo": @"bar"}];
}
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"login"])
{
MainController *vc = segue.destinationViewController;
vc.uuid = userUuid;
}
}
Вот функции, которые я использую для выполнения« push segue »в« основном контроллере ». Я хочу выполнить push-сегу здесь, и я столкнулся с исключением в этой части.
//MainController.m
- (IBAction)actionGo:(id)sender {
[self performSegueWithIdentifier:@"routeList" sender:self];
}
Фактически, у меня есть контроллер навигации до «входа в систему». Так почему же он не смог найти «навигационный контроллер»?
Если я использую modal segue, он работает. Так почему же он не работает для push segue?
Edit 1 - Мои раскадровки:
Edit 2 - Предлагается внедрить главный контроллер в навигационном контроллере (Нажмите на контроллер источника в Segue routeList и в меню редактора выберите Вставить в систему > Контроллер навигации). Теперь моя история доска приводится ниже, и я столкнулся с этой ошибкой в настоящее время:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[UINavigationController setUuid:]: unrecognized selector sent to
instance 0x17da9df0'
Я передаю значение от контроллера входа к основному контроллеру. Когда я добавляю контроллер навигации, я не мог передать это значение. Как я могу передать это значение?
Раскадровка когда MainController встроен в контроллер навигации:
РЕШЕНИЕ В МОИХ СЛОВ:
Благодаря людям, которые разделяют их ответы в этой теме :) Я решил проблему. В стеке контроллера навигации , если я ставлю модальный сегмент, каким-то образом ссылка сломана, а остальная часть просмотров не является частью навигационного контроллера. Итак, я сделал все сегменты как «стиль push». Тогда В MainController.m я извлекал кнопку назад следующим образом:
-(void)viewDidAppear:(BOOL)animated{
[self.navigationItem setHidesBackButton:YES animated:NO];
}
Найти ответ здесь [ссылка] (http://stackoverflow.com/questions/15506324/ios-segue-terminating-app-due-to-uncaught-exception-nsgeneric-exception) – Greg
Это не относится к меня, я добавляю снимок моей раскадровки. Как вы видите, я уже поместил свой первый указатель вида на контроллер навигационного представления. – ankakusu
Спасибо, что помогли Грегу :) – ankakusu