从AppDelegate中的ViewController获取param。

时间:2014-03-23 01:20:37

标签: ios iphone uiviewcontroller appdelegate rootview

我需要在AppDelegate中获取一些ViewController的参数。

它不是AppDelegate的根。

更快的方法是什么?团?

2 个答案:

答案 0 :(得分:0)

将其设为VC上的属性,然后您的AppDelegate可以根据需要访问它。

答案 1 :(得分:0)

首先,你的设计出现了严重错误,否则就不需要你做这样的事了。

其次,您尚未提供有关VC层次结构的任何相关信息,并且没有针对此的一般解决方案。

但是,这里有一些变通方法/补丁:

1)如果您使用的是故事板,可以使用:

UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"mystoryboard"
                                              bundle:nil];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"ExampleViewController"];

2)您可以制作视图控制器单例并直接从AppDelegate

访问它

3)Hacky方法:在AppDelegate中有一个@property(非原子,保留)UIVIewController * hackyViewController;

在hackyViewController.m中执行此操作

-(void)viewDidLoad{
    // call super

    YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
    YourAppDelegate.hackyViewController =self;
}

理想情况下,您应该使用UIVIewcontroller的parentViewController和childViewcontroller属性在viewcontroller层次结构中导航以获取实例。您还可以创建一个递归函数,该函数在所有childViewcontroller中导航并使用iSKindOf检查实例以识别您正在查找的viewcontroller,但此方法不适用于所有iOS配置。

相关问题