How to handle the initial UIViewController after dissmissing the one on top of it
m大家好
如果我使用了不正确的术语,请先原谅我。我在使用 viewController 时遇到问题。我有一个通过 navigationController 访问的 viewController(触发的 segues:rootViewcontroller->firstviewcontroller)
现在我在 firstviewcontroller 上,它调用”viewdidLoad”,如果用户没有登录,它会对 loginViewController 执行模态搜索。
处理完此视图的登录问题后,我执行
1
|
[self.presentingViewController dismissViewControllerAnimated:NO completion:nil];
|
它会关闭登录控制器并毫无问题地将我带回 firstviewController。
现在我的问题是,这个解除操作——毫无疑问——不会再次调用”viewDidLoad”(这样我就可以检查用户是否已登录)。我想知道我是否可以在关闭第二个视图控制器后自动调用我的第一个视图控制器的任何部分,以便我可以自动检查登录状态并相应地执行操作。
非常感谢
阿尔达
- 不相关的注释:当我发布此消息时,我的”大家好”短语被剪掉了。我添加了一个随机字母(m)。我们不能在这里和人打招呼吗?
你可以覆盖 firstViewController 中的 -viewWillAppear: 方法。它会在你关闭登录控制器后被调用。
另一种方法是让你的 firstViewController 成为登录控制器的委托。完成登录过程后,您可以调用委托来关闭呈现的视图控制器并更新子视图
- -viewDidLoad 不会再次调用,因为视图控制器的视图在显示模式视图控制器时不会被卸载,因此无需再次加载视图。不过,在 iOS6 之前的环境中有一个例外。当应用程序收到内存警告时,它会卸载未呈现的控制器的视图,因此在这种情况下,当当前模式视图控制器被解除时,-viewDidLoad 将被调用。
- 你先生让我开心!我知道这很容易,我什至为此阅读了文档,直到现在我才意识到。估计要睡觉了非常感谢
来源:https://www.codenong.com/15977256/