我有 ViewController A B 和 C。Form B 和 C 我可以导航回 ViewController A。
首先显示的是 ViewController A,之后用户可以转到 B 或 C
仅当用户从 ViewContoller C 返回时,我才想在 ViewController A 上的文本框中显示一条消息
那么如何识别/检查用户是否来自该特定的 ViewController C ?
最佳答案
解决方案一:
您可以使用委托(delegate)来执行此操作。
您可以定义一个协议(protocol),例如 RootViewControllerDelegate。
RooViewController 将有一个符合此协议(protocol)的委托(delegate)。
您的 TopViewController 将符合此协议(protocol),该协议(protocol)可能具有诸如 -RootViewControllerCompletedSomeThing 之类的方法,RootViewController 可以在完成时发送该方法。
在此方法的 TopViewController 实现中,它可以解除/弹出 RootViewController,并在解除 RootViewController 时执行您想要执行的任何其他操作。
方案二:
您可以将 NSUserDefaults 设置为每个 View Controller 。
例如对于 ViewController A
[[NSUserDefaults standardUserDefaults] setObject:@"Yes" forKey:@"ViewControllerA"];
例如对于 ViewController B
[[NSUserDefaults standardUserDefaults] setObject:@"Yes" forKey:@"ViewControllerB"];
例如对于 ViewController C
[[NSUserDefaults standardUserDefaults] setObject:@"Yes" forKey:@"ViewControllerC"];
并在 Viewcontroller ViewDidLoad 检查下面的条件
-(Void)ViewDidLoad
{
if([[NSUserDefaults standardUserDefaults]ValueForKey:@"ViewControllerC"] isEqualToString:@"Yes"])
{
//Write your code.
}
}
关于ios - 如何检查以前打开的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35126866/