我有CustomNavigationViewController
我在哪里检查用户是否已注册。如果是,则直接打开UserProfileVewController
,跳过注册或登录屏幕。
每当用户点击退出按钮时,我就会尝试解除UserProfileVewController
,但没有任何反应。
CustomNavigationViewController.m
-(void) viewWillAppear: (BOOL) animated {
if([self isRegistered])
{
UserProfileViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"UserProfileVewController"];
[self pushViewController:vc animated:YES];
}
}
UserProfileVewController.m
[self dismissViewControllerAnimated:YES completion:nil];
答案 0 :(得分:0)
当你“推”一个ViewController时,你想“弹出”回到推动它的VC。
当你“呈现”一个ViewController时,那就是你想“解雇”它。
答案 1 :(得分:0)
视图控制器导航以两种模式运行。 1.演示文稿(模态视图) 2.亲子关系(遏制)
演示文稿:要从第一个控制器移动到第二个控制器,我们使用
[self presentViewController:secondController animated:YES completion:nil]
现在,回到第一个控制器,在第二个控制器中它应该是
[self.presentingViewController dismissViewController animated:YES]
亲子关系:NavigationController,TabBarController就是例子。 NavigationController充当控制器堆栈,其中包含TabBarController控制器阵列。
由于您正在使用导航控制器并将控制器推入导航控制器,因此需要弹出而不是关闭。因此,在第二个视图(子视图控制器)中,它应该写为
[self.navigationController popViewControllerAnimated:YES];
答案 2 :(得分:0)
如果按下viewcontroller,则无法忽略viewcontroller只返回控制器
[self.navigationController popToRootViewControllerAnimated:YES];
如果存在viewcontroller,你想要支持控制器
[self dismissViewControllerAnimated:YES completion:nil];