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

时间:2010-08-06 19:52:47

标签: iphone uiapplicationdelegate

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

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

实际上,当我从应用程序的任何屏幕切换模拟器上的通话中状态栏时,消息会显示在控制台中,但我想要做的是在另一个类中移动uitextfield或2 - 高度状态栏特别搞乱了一个屏幕。我在这个屏幕上自动调整没有运气。

所以我的问题是如何在AppDelegate中仅使用此方法实现一个屏幕和一个屏幕的代码?它在所有屏幕中都会闪光但我只需要一个屏幕。理想情况下,我只想在一个类中使用一种方法来解雇。

2 个答案:

答案 0 :(得分:7)

系统还会同时发布UIApplicationWillChangeStatusBarFrameNotification。让您的视图控制器听取此通知。根本不需要弄乱应用程序委托。

答案 1 :(得分:1)

选择Ole的答案,但为了将来的参考,你如何找到你的代表是:

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