hi У меня есть контроллер представления с контейнером и в контейнере дочерний вид с представлением коллекции, когда пользователь забирает ячейку коллекции, которую он отправляет мне на контроллер представления подробно, но теперь то, что я хочу сделать, это добавить кнопку назад в моей детализации контроллера представления, который посылает меня к parentViewControllerКак создать кнопку возврата в контроллере представления, чтобы перейти к контроллеру родительского представления
ответ
Case 1: UNWIND SEGUE
Это будет работайте в соответствии с вашей ситуацией:
Отмотать перетекает дать вам возможность «раскрутиться» навигационный стек и указать пункт назначения, чтобы вернуться.
Случай 2: PopToRootViewController
Если родительский вид также ваш контроллер представления Root, то вы можете легко получить обратно с помощью popToRootViewControllerAnimated:YES
.
Создайте собственную кнопку возврата, добавьте ее в навигационную панель с помощью метода backButtonTouch
.
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", nil) style:UIBarButtonItemStyleDone target:self action:@selector(backButtonTouch:)];
Добавить код выше на viewDidLoad
.
-(void)backButtonTouch:(id)sender{
[self.navigationController popToRootViewControllerAnimated:YES];
}
Спасибо Unwind segue решил это для меня! – Mastertron
Если вы хотите настроить кнопку назад, первый скрыть панель навигации
[self.navigationController setNavigationBarHidden: YES];
Теперь добавьте кнопку, и создать его touchUpInside событие, в этом случае поп-контроллер
[self.navigationController popViewControllerAnimated: YES];
На кнопки действий Назад, добавьте следующую строку:
[self.navigationController popToRootViewControllerAnimated:YES];
Это переместит вас rootViewController
.
Вот мой код, чтобы вернуться в родительский контроллер представления
- (IBAction)ActionbtnBack:(id)sender {
int flag = 0;
for (UIViewController *controller in [[self.navigationController.viewControllers reverseObjectEnumerator] allObjects]) {
NSLog(@"> %@",[controller class]);
if ([controller isKindOfClass:[YourParentviewcontroller class]]) {
flag=1;
[self.navigationController popToViewController:controller
animated:YES];
break;
}
else if ([controller isKindOfClass:[YourParentviewcontroller class]]) {
flag=1;
[self.navigationController popToViewController:controller
animated:YES];
break;
}
}
if (flag == 0) {
YourParentviewcontroller *MoreVc = [[YourParentviewcontroller alloc] initWithNibName:@"parentViewcontrollerIdentifier" bundle:nil];
[self.navigationController pushViewController:MoreVc animated:YES];
}
}
Это то, что 'UINavigationController' для. – rmaddy