PresentViewController 关闭不会回到以前的 viewController
Posted
技术标签:
【中文标题】PresentViewController 关闭不会回到以前的 viewController【英文标题】:PresentViewController dismiss doesn`t go back to previous viewController 【发布时间】:2018-01-09 18:12:08 【问题描述】:在我的项目中,我们有三个窗口 A、B 和 C。我想从 A 推送视图 B,从 B 我想呈现视图 C。 我的代码: 视图控制器 A:
ViewControllerB *vcB = [[viewControllerB alloc]
initWithNibName:@"ViewControllerB" bundle:nil];
[[self navigationController] pushViewController:vcB animated:YES];
查看控制器 B:
ViewControllerC *vcC = [[ViewControllerC alloc]
initWithNibName:@"ViewControllerC" bundle:nil];
[self presentViewController:vcC animated: true completion: nil];
到目前为止一切都很好,但是当我关闭最后一个视图控制器时:
[[self presentingViewController] dismissViewControllerAnimated:NO completion:nil];
应用返回到第一个视图控制器 (vcA) 而不是第二个 (vcB)
我做错了什么? 谢谢各位。
【问题讨论】:
您的第一步应该是将视图控制器重命名为重要的名称。 A、B 和 C 非常难以理解,会引起混淆。 @Gabriel 您是否正确使用 UINavigationContoller,如果是,请分享更多详细信息,以便我提供帮助 【参考方案1】:你一定在做一些你没有告诉我们的事情......
这按预期工作:
在MyFirstViewController.m
- (IBAction)pushTapped:(id)sender
MyPushedViewController *vc = [[MyPushedViewController alloc] initWithNibName:@"MyPushedViewController" bundle:nil];
[self.navigationController pushViewController:vc animated:YES];
在MyPushedViewController.m
- (IBAction)presentTapped:(id)sender
MyPresentedViewController *vc = [[MyPresentedViewController alloc] initWithNibName:@"MyPresentedViewController" bundle:nil];
[self presentViewController:vc animated:YES completion:nil];
在MyPresentedViewController.m
- (IBAction)dismissTapped:(id)sender
[self dismissViewControllerAnimated:NO completion:nil];
点击MyPresentedViewController
中的“关闭”按钮会关闭显示的视图控制器(您的vcC
),让我留在MyPushedViewController
(您的vcB
)... 不是MyFirstViewController
(你的vcA
)。
【讨论】:
【参考方案2】:试试这个来关闭 vc
[self dismissViewControllerAnimated:NO completion:nil]
并用它来弹出
[self.navigationController popToViewController:controller animated:YES];
【讨论】:
不工作...显然 self.navigationController 是 nil【参考方案3】:[self presentingViewController] = Bvc ,所以在这里你实际上解雇了 B 而不是 C
[Bvc dismissViewControllerAnimated:NO completion:nil];
但是 self = Cvc 所以在这里你只解雇 C
[self dismissViewControllerAnimated:NO completion:nil];
【讨论】:
以上是关于PresentViewController 关闭不会回到以前的 viewController的主要内容,如果未能解决你的问题,请参考以下文章
ios - 当 presentViewController 关闭时不起作用
PresentViewController 关闭不会回到以前的 viewController
presentViewController 不隐藏弹出框,弹出框出现在呈现的模态视图上