在应用程序中运行代码而不管视图

时间:2015-06-01 03:01:43

标签: ios objective-c

我希望我的应用在iPhone的方向发生变化时触发操作,无论用户在应用中的位置如何。

我正在使用

if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) || 
        ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)) {


}

检查设备的方向。

我在哪里放置此代码,以便在方向更改时始终运行?

2 个答案:

答案 0 :(得分:2)

在您的app delegate中,注册UIDeviceOrientationDidChangeNotification通知。

然后在通知的选择器中,您可以执行if检查。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChange) name: UIDeviceOrientationDidChangeNotification object:nil];

    // everything else you had in this method
}

- (void)orientationChange {
    if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) || 
        ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)) {
    }
}

答案 1 :(得分:1)

也许您想为UIApplicationWillChangeStatusBarOrientationNotification注册一个听众。