如何在整个程序中使用 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?
NativeScript - 如何在应用程序的整个 scss 中使用 SASS 变量?