如何在视图控制器中创建后退按钮以转到父视图控制器

时间:2016-01-11 05:39:57

标签: ios back-button childviewcontroller

嗨我有一个带有容器的视图控制器,并且在容器中有一个带有集合视图的子视图,当用户点击集合视图单元时它将我发送给详细视图控制器,但现在我要做的是添加一个返回我的详细视图控制器中的按钮,它将我发送到parentViewController

enter image description here

4 个答案:

答案 0 :(得分:3)

案例1 :放松争论

根据您的具体情况,这将是完美的:

iOS Unwind Segue

Unwind Segues为您提供了一种“展开”导航堆栈并指定要返回的目的地的方法。

案例2 :PopToRootViewController

如果您的父视图也是您的根视图控制器,那么您可以使用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];
}

答案 1 :(得分:0)

  1. 如果要自定义后退按钮,请先隐藏导航栏

    [self.navigationController setNavigationBarHidden:YES];

  2. 现在添加一个按钮,并创建其touchUpInside事件,在该事件中弹出控制器

    [self.navigationController popViewControllerAnimated:YES];

答案 2 :(得分:0)

在后退按钮操作中,添加以下行:

$this.parent("#fullTable").load("list.php");

这会将您转移到[self.navigationController popToRootViewControllerAnimated:YES];

答案 3 :(得分:0)

这是我回到父视图控制器的代码

 - (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];
        }
    }

enter image description here