ios - 当 Reachability 发生变化时,连续关闭 ViewController

标签 ios uiviewcontroller reachability dismiss

我正在编写一款游戏,用户只有在有事件的互联网连接时才能玩。如果互联网状态发生变化,我想关闭所有 ViewController 并返回登录屏幕。这是层次结构:

我的应用程序委托(delegate)通过以下方式显示 LoginViewController:

self.window.rootViewController = loginViewController;
[self.window makeKeyAndVisible];

用户在此登录。登录时,我检查连接并处理错误。如果登录成功,loginViewController 会使用

呈现 mainViewController
[self presentModalViewController:self.mainViewController animated:YES];

然后mainViewController呈现其他 Controller ,可以呈现其他 Controller 等等。当前和解雇例程工作正常。

现在,如果可达性状态发生变化,我想显示警报并强制应用程序返回登录屏幕。我知道如何倾听这些通知并采取适当的行动。这是有据可查的:)

如何关闭所有 View Controller ,直到返回登录屏幕?我是否需要监听所有 View Controller 中的通知并分别关闭它们?有没有什么方法可以捕获父级(如应用程序委托(delegate))中的通知并从那里解除所有 View Controller (无需事先保留对所有 View Controller 的引用)?

显然,我没有使用 navigationController 所以

[self.navigationController popToRootViewControllerAnimated:NO];

不可能。

编辑:或者,我可以忽略并释放所有内容并从头开始,就像应用程序是新启动的一样。这是更好的方法吗?我具体该怎么做?

谢谢。

最佳答案

好的,我解决了。只需调用

[self dismissModalViewControllerAnimated:NO];

在loginViewController上关闭主视图 Controller 和堆栈上上面的所有 Controller 。

关于ios - 当 Reachability 发生变化时,连续关闭 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12468142/

相关文章:

ios - 使用 Class/Struct in collection Cell inside collection Cell for future pass data

ios - 从 ViewController 内部调用 MainViewController 的方法 didselectrowatindexpath Objective c

swift - 委托(delegate)从 subview 到主视图的更改

iphone - loadView 在内存警告后无法正确加载我的 View

ios - 当可达性连接丢失时显示警报 View

ios - 快速多重通知

ios - 如何禁用 UITextField 中的文本提示?

ios - Swift 泛型类

ios - WiFi的iOS设备场景,但无法访问互联网

ios:在后台排队阻塞并在网络可用时执行