Objective c 检测打开uiviewcontroller的父级
我有两个不同的场景调用同一个uiviewcontroller, 情景1: 在主uiviewcontroller中,单击按钮可创建虚拟导航器,并按如下方式显示:Objective c 检测打开uiviewcontroller的父级,objective-c,uitableview,uiviewcontroller,uinavigationcontroller,Objective C,Uitableview,Uiviewcontroller,Uinavigationcontroller,我有两个不同的场景调用同一个uiviewcontroller, 情景1: 在主uiviewcontroller中,单击按钮可创建虚拟导航器,并按如下方式显示: UINavigationController* dummyNavigation = [[UINavigationController alloc]init]; [dummyNavigation addChildViewController:bViewController]; [self presentViewController:dumm
UINavigationController* dummyNavigation = [[UINavigationController alloc]init];
[dummyNavigation addChildViewController:bViewController];
[self presentViewController:dummyNavigation animated:NO completion:NULL];
[self.navigationController pushViewController:bViewController animated:NO];
情景2:
在主uiviewcontroller中,单击一个按钮打开其中的uitableviewcontroller,每次单击一行打开bViewController,如下所示:
UINavigationController* dummyNavigation = [[UINavigationController alloc]init];
[dummyNavigation addChildViewController:bViewController];
[self presentViewController:dummyNavigation animated:NO completion:NULL];
[self.navigationController pushViewController:bViewController animated:NO];
我已将bViewController的导航栏设置为隐藏
[self.navigationController setNavigationBarHidden:YES];
并创建了一个按钮,用此代码替换导航的后退按钮
[self dismissViewControllerAnimated:YES completion:NULL];
问题:在这两种情况下,“后退”按钮代码都会返回主uiviewcontroller,但在情况2中,预期会在解除时返回uitableviewcontroller,如果它位于导航控制器中,则弹出,否则将解除
if (self.navigationController) {
[self.navigationController popViewControllerAnimated:YES];
} else {
[self dismissViewControllerAnimated:YES completion:nil];
}
您的回答不正确,因为如果self.navigationController在场景1中始终为true,则存在dummyNavigation,而场景2则是uitableviewcontroller的navigationController