如何在整个程序中使用 UIApplicationDelegate?

Posted

技术标签:

【中文标题】如何在整个程序中使用 UIApplicationDelegate?【英文标题】:How do I use UIApplicationDelegate throughout the program? 【发布时间】:2010-08-06 19:52:46 【问题描述】:

我想知道状态栏何时改变高度,例如正在进行的电话。所以我将以下内容放在我的 UIApplicationDelegate 中:

-(void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame 
    NSLog(@"yup, got here");

确实,当我从应用程序中的任何屏幕切换模拟器上的通话状态栏时,该消息会出现在控制台中,但我想要做的是将 uitextfield 或 2 移动到另一个类中,因为双-height 状态栏尤其弄乱了一个屏幕。我在这个屏幕上自动调整大小没有运气。

所以我的问题是如何在 AppDelegate 中仅通过此方法实现一个屏幕和一个屏幕的代码?它会在所有屏幕上触发,但我只需要它在一个屏幕上。理想情况下,我希望只在一个类中触发一个方法。

【问题讨论】:

【参考方案1】:

系统也会同时发布UIApplicationWillChangeStatusBarFrameNotification。让您的视图控制器收听此通知。完全不需要与应用程序代理混淆。

【讨论】:

谢谢。我会试一试。所以我什至不需要应用程序委托中的方法。太好了! 完美运行。再次感谢。【参考方案2】:

使用 Ole 的答案,但为了将来参考,您如何联系您的代表是:

MyAppDelegate *delegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;

【讨论】:

以上是关于如何在整个程序中使用 UIApplicationDelegate?的主要内容,如果未能解决你的问题,请参考以下文章

如何在整个程序中使用 UIApplicationDelegate?

如何在整个应用程序中使用相同的 XMPP 连接

NativeScript - 如何在应用程序的整个 scss 中使用 SASS 变量?

如何在整个应用程序中保持模型更新

如何在 selenium 驱动程序中获取整个页面的 innerHTML?

如何声明可以在整个程序中使用的全局 2d 3d 4d ...数组(堆版本)变量?