NSNotification不会驳回模态视图

时间:2011-07-07 15:09:47

标签: iphone modalviewcontroller nsnotifications nsnotificationcenter

任务: 我有一个推动模态视图的导航控制器,称为登录。此登录视图有一个按钮,用于推送另一个模态视图,称为注册。如果用户注册了注册模式,则应忽略登录模式。我在登录视图中创建了一个nsnotification,它等待来自注册提交操作的帖子。

问题登录会收到通知,但不会关闭登录视图。我知道该方法运行,因为NSLog会触发。

登录viewDidLoad

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismiss) name@"SignedUp" object nil];

登录解雇

NSLog(@"Dismiss"); // this fires
[self dismissModalViewControllerAnimated: YES];

注册方法(儿童控制器)

[self dismissModalViewControllerAnimated: YES];
[[NSNotificationCenter defaultCenter] postNotificationName:@"SignedUp" object:[self parentViewController]];

我在注册方法

中调用dismiss之后也尝试了这个
[self.parentViewController dismissModalViewControllerAnimated:YES];

编辑我没有推动这些控制器。我正在使用presentModalViewController

2 个答案:

答案 0 :(得分:1)

如果你打算解散整个堆栈,为什么一次解雇一个?这可能不是通知的问题。你可以使用

弹出整个堆栈
[[[self parentViewController] parentViewController] dismissModalViewControllerAnimated:YES];

然后,如果您想再次显示它,请再次将其设为presentModalViewController

我相信你可以通过https://stackoverflow.com/search?q=Dismiss+multiple+modal+controllers

获得大量输入

答案 1 :(得分:0)

您如何呈现模态视图?我问的原因是你说的是“推动模态视图的导航控制器”。

如果您使用的是pushViewController:animated:,那么它不是模态视图,您需要使用popViewControllerAnimated:让它再次消失。