ios - 如何检查以前打开的 View Controller

标签 ios objective-c uiviewcontroller

我有 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/

相关文章:

ios - UIViewController 的 View 未通过 viewWillAppear() 调整大小

objective-c - 关于 objective-C 和 cocoa/cocoa-touch 的实现的良好知识/信息来源是什么?

ios - 快速查看生成器 iOS

ios - IOS 上滑出 UIViewController

ios - 改变 Swift 中的 VC 问题。如何在标签栏 Controller 的 View 之间传递数据?

ios - 需要在所有 UIAlertController 关闭后执行操作

ios - ReactiveX 如何暂停 observable

ios - 如何为不同的屏幕尺寸设置不同的字体,例如iPhone 6s和iPhone SE

iphone - 如何在动画过程中找到CAlayer的位置?

ios - 如何使用 XCode 4.6.3 安装 iOS 5 模拟器?