簡體   English   中英

無法在AppDelegate中初始化委托,但可以在類方法中初始化

[英]Can't initializing a delegate in the AppDelegate but inside a class method it works

我正在嘗試在didFinishLaunchingWithOptions方法內的didFinishLaunchingWithOptions初始化委托( MyDelegate ),如下所示:

UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
[[someClassName instance] setMyDelegate:[myStoryboard instantiateViewControllerWithIdentifier:@"someVcName"]];

在調試時,所有調用均執行良好,但是在上述調用之后返回到AppDelegate時,MyDelegate為零。

有趣的是,當我嘗試在編寫的類方法中設置委托時,它可以工作-與上面完全相同的代碼。

為什么初始化在類方法中起作用卻無法在AppDelegate中起作用?

謝謝。

編輯

基本上, @ Leo解決了問題,但是解決方案非常簡單,因為我使用的是Storyboard,然后自動啟動了第一個ViewController(假設您已分配了入口點箭頭圖標):

解決方案:

[[someClassName instance] setMyDelegate:[self.window rootViewController]];

關於方法instantiateViewControllerWithIdentifier

來自文件

每次調用時,此方法都會創建指定視圖控制器的新實例。

因此,在didFinishLaunchingWithOptions ,您將創建一個本地viewController實例。

並且,該方法完成后將被取消分配。

暫無
暫無

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

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