大佬教程收集整理的这篇文章主要介绍了ios – 如何从App Delegate和/或其他View Controller访问多个View Controller?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以前我可以通过在’didFinishLaunchingWithOptions’中执行以下操作,从App Delegate到我的第一个视图控制器:
之后我可以通过正常的[viewController someMethod];来从App Delegate访问视图控制器中的方法.
如果我有多个视图控制器(目前有3个),我如何从其他位置访问其他视图控制器?顺便说一句,我已经找到了一些解释,但所有人都在讨论nib / xibs与代码的结合.我没有它们,我有一个故事板和代码(我是app dev的新手).
谢谢!
例如:
在AppDelegate.h中
@property (nonatomic,strong) UIViewController *vc1; @property (nonatomic,strong) UIViewController *vc2;
在AppDelegate.m中
@synthesize vc1,vc2;
无论您在何处创建此viewControllers,都可以访问appDelegate并设置其属性以保留正确的引用.不要忘记将AppDelegate.h包含在此文件中.
UIViewController *someVC = [init view controller....]; AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; appDelegate.vc1 = someVc;
从那时起,您可以将此viewController作为appDelegate的属性进行访问.
编辑:对于storyBoarding,看起来这样做是安全的 – (void)viewDidLoad.
或者更好的方法是(如richard提到的)在 – (id)initWithCoder:(NSCoder *)解码器中执行此操作
“当从故事板中实例化视图控制器时,iOS会通过调用其initWithCoder:方法来初始化新的视图控制器.”从documentation
但请注意,如果您要将任何数据从一个视图控制器更改为另一个视图控制器,您可能需要考虑将这些数据保存在代码的单独部分中(在模型 – 视图 – 控制器方法中称为模型).这是在viewControllers之间“交换”数据的最安全的方法.
以上是大佬教程为你收集整理的ios – 如何从App Delegate和/或其他View Controller访问多个View Controller?全部内容,希望文章能够帮你解决ios – 如何从App Delegate和/或其他View Controller访问多个View Controller?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。