簡體   English   中英

從 AppDelegate 中的 ViewController 獲取參數。

[英]Get param from ViewController in AppDelegate.

我需要在 AppDelegate 中獲取某個 ViewController 的一個參數。

它不是 AppDelegate 的根。

什么是更快的方法? 代表團?

將其設置為您的 VC 上的一個屬性,然后您的 AppDelegate 可以根據需要訪問它。

首先,您的設計存在嚴重錯誤,否則您不需要做這樣的事情。

其次,您沒有提供任何有關您的 VC 層次結構的相關信息,並且沒有通用的解決方案。

但是,這里有一些解決方法/補丁:

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

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

2)您可以使視圖控制器單例並直接從 AppDelegate 訪問它

3) Hacky 方法:在 AppDelegate 中有一個 @property (nonatomic, retain) UIVIewController *hackyViewController;

在 hackyViewController.m 中這樣做

-(void)viewDidLoad{
    // call super

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

理想情況下,您應該使用 UIVIewcontroller 的 parentViewController 和 childViewcontroller 屬性瀏覽視圖控制器層次結構以獲取實例。 您還可以創建一個遞歸函數,通過所有 childViewcontroller 導航並使用 iSKindOf 檢查實例來識別您正在尋找的視圖控制器,但此方法不適用於所有 iOS 配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM