1

任务: 我有一个导航控制器,它推送一个模态视图,称为登录。这个登录视图有一个按钮可以推动另一个模式视图,称为注册。如果用户注册了注册模式并且登录模式应该关闭。我在登录视图中创建了一个 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

4

2 回答 2

1

如果您打算解雇整个堆栈,为什么要一次解雇他们?这可能不是通知的问题。您可以使用弹出整个堆栈

[[[self parentViewController] parentViewController] dismissModalViewControllerAnimated:YES];

然后,如果您想再次展示它,只需再次展示它presentModalViewController

我相信您可以通过https://stackoverflow.com/search?q=Dismiss+multiple+modal+controllers获得大量输入

于 2011-07-07T15:41:04.887 回答
0

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

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

于 2011-07-07T15:26:53.043 回答