iOS7 - popToRootViewControllerAnimated ничего не делает
Я оглянулся, но не нашел удовлетворительного ответа. Моя проблема в том, что всякий раз, когда я звоню popToRootViewControllerAnimated:(BOOL)
он ничего не делает. Когда я NSLog это, это логи (null)
, Позвольте мне немного вернуться назад. У меня есть контроллер табличного представления, у которого есть список вещей, в навигационной панели вверху есть опция, чтобы добавить, и это берет меня к новому контроллеру представления с секцией "Present as PopOver", которая избавляется от основного или основного Панель навигации. Поэтому я сделал один вручную и добавил 2 кнопки панели "Отмена" и "Добавить". При нажатии "Отмена" пользователь должен вернуться к контроллеру табличного представления и отменить изменения; при нажатии кнопки "Добавить" пользователь также должен вернуться к предыдущему контроллеру табличного представления с изменениями. Но он ничего не делает.
Вот мой код
- (IBAction)cancelButton:(UIBarButtonItem *)sender {
UINavigationController * navigationController = self.navigationController;
NSLog(@"%@", navigationController);
NSLog(@"cancel tapped though");
ListingTableViewController *rootController = [[ListingTableViewController alloc] init];
[navigationController popToRootViewControllerAnimated:NO];
[navigationController pushViewController:rootController animated:YES];
}
Насколько sege, этот контроллер представления не подключен ни к чему, или я должен подключить его? Это действительно нубийский вопрос. Вот мой скриншот xcode.
2 ответа
Вы должны позвонить
- (IBAction)cancelButton:(UIBarButtonItem *)sender {
NSLog(@"cancel tapped though");
[self dismissViewControllerAnimated:YES completion:nil];
}
вместо popToRootViewControllerAnimated
потому что твой ВК представлен и не сдвинут!
При представлении представления вы не помещаете его в свой контроллер навигации, а представляете его. Чтобы отклонить это, попробуйте использовать [self.presentingViewController dismissViewControllerAnimated:NO completion:nil]
,