检测打开uiviewcontroller的父级

时间:2015-02-22 07:31:07

标签: objective-c uitableview uiviewcontroller uinavigationcontroller

我有两个不同的场景调用相同的uiviewcontroller, 方案1: 在主uiviewcontroller中单击按钮创建一个虚拟导航器并显示如下:

UINavigationController* dummyNavigation = [[UINavigationController alloc]init];
[dummyNavigation addChildViewController:bViewController];
[self presentViewController:dummyNavigation animated:NO completion:NULL];

方案2: 在主uiviewcontroller中点击一个按钮打开一个uitableviewcontroller,每次点击一行打开bViewController,如下所示:

[self.navigationController pushViewController:bViewController animated:NO];

我已将bViewController的导航栏设置为隐藏

[self.navigationController setNavigationBarHidden:YES];

并创建了一个按钮,用此代码替换导航的后退按钮

[self dismissViewControllerAnimated:YES completion:NULL];

问题:在两种情况下,后退按钮代码都会返回到主uiviewcontroller,但在方案2中,它会返回到uitableviewcontroller

1 个答案:

答案 0 :(得分:-1)

检查解雇时,如果它在导航控制器中,则弹出否则解除。

if (self.navigationController) {
    [self.navigationController popViewControllerAnimated:YES];
} else {
    [self dismissViewControllerAnimated:YES completion:nil];
}