假设我有 3 UIViewControllers
A、B、C。
现在假设我从 A 调用 B 或 C。不是使用 segue,而是在代码中实例化它们并将它们推送到navigationController
.
在 B 或 C 完成后,它们调用 popViewControllerAnimated:
,因此返回到 A。
此时,我想访问 B 或 C 的属性,具体取决于其中哪一个实际上是我使用的最后一个。
如果最后一个UIViewController
是 B 或 C 类型,是否有任何方法或属性可以为我提供信息?
我知道我可以为 B 和 C 定义一个协议并将 A 设置为 delegate
,但我正在寻找别的东西......
尽管每次都设置可能很不方便,但委托模式是解决此问题的正确方法。也就是说,快速到达那里的最快、最黑客的方法可能只是保留对您在 A 的实例变量或属性中推送的最后一个 viewController 的引用,然后在 -viewWillAppear:
中使用它。但是,一旦事情开始变得复杂,确保此属性始终正确,最终可能比设置简单的委托要多得多。