β (void) scheduleLocalNotification{
UILocalNotification *notification = [[UILocalNotification alloc] init];
/* ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° */
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:8.0];
notification.timeZone = [[NSCalendar currentCalendar] timeZone];
notification.alertBody =
NSLocalizedString(@"A new item is downloaded.", nil);
/* ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ */
notification.hasAction = YES;
notification.alertAction = NSLocalizedString(@"View", nil);
/* ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ»ΡΠΊΠ° */
notification.applicationIconBadgeNumber =
[UIApplication sharedApplication].applicationIconBadgeNumber + 1;
/* ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ */
notification.userInfo = @{@"Key 1": @"Value 1",
@"Key 2": @"Value 2"};
/* ΠΠ°Π·Π½Π°ΡΠ°Π΅ΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ */
[[UIApplication sharedApplication] scheduleLocalNotification: notification];
}
ΠΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π·Π΄Π΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ scheduleLocalNotification. ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈΠ· Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ iOS Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΡΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅. ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅ Π½Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ scheduleLocalNotification Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ iOS, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ scheduleLocalNotification: ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ UIApplication (ΠΊΠ°ΠΊ ΠΈ Ρ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² iOS, Π² ΠΊΠΎΠ½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠΎΠΈΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅). ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΌ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ, Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ iOS.
Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ application: didFinishLaunchingWithOptions ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΠΎΡΠΊΡΡΠ»ΠΎΡΡ Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠΌΠ΅ΡΡΠΈΠΌΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°Π·Π½Π°ΡΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅:
β (BOOL) application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
if (launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]!= nil){
UILocalNotification *notification =
launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];
[self application: application didReceiveLocalNotification: notification];
} else {
[self scheduleLocalNotification];
}
self.window = [[UIWindow alloc]
initWithFrame: [[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
ΠΠΎΠ³Π΄Π° Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΎΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ, ΠΌΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄ application: didReceiveLocalNotification:, Π³Π΄Π΅ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈΠΌΠ΅ΡΡΠΈΠΌΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠΎΡ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°:
β (void) application:(UIApplication *)application
didReceiveLocalNotification:(UILocalNotification *)notification{
NSString *key1Value = notification.userInfo[@"Key 1"];
NSString *key2Value = notification.userInfo[@"Key 2"];
if ([key1Value length] > 0 &&
[key2Value length] > 0){
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle: nil
message:@"Handling the local notification"
delegate: nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
}
}
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΡΡΠ°ΠΉΡΠ΅ Π΅Π³ΠΎ. ΠΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ Ρ Π½ΠΈΠΌ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΠΆΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π°ΠΊΡΡΡΡ. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ Π² ΡΠ°Π·Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π Π°Π·Π΄Π΅Π»Ρ 15.0 ΠΈ 15.4.
15.6. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠΎΠ³Π΄Π° Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ Π²Π°ΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΈ ΠΊΡΠ»ΡΡΡΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ) ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΈΡΠ»Π° ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° iOS ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡΠΈΠΌ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠ°Π»Π΅Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ:
β’ NSCurrentLocaleDidChangeNotification β Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Settings (ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ) ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠ°Π½ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π²ΠΌΠ΅ΡΡΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ;
β’ NSUserDefaultsDidChangeNotification β Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Settings (ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ) ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ iOS β ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ;
β’ UIDeviceBatteryStateDidChangeNotification β Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Ρ iOS ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±Π°ΡΠ°ΡΠ΅ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π° ΠΏΠΎΡΠΎΠΌ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ°ΠΊΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ (ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ). Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° batteryState ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° UIDevice;
β’ UIDeviceProximityStateDidChangeNotification β Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π°ΡΡΠΈΠΊΠ° Π±Π»ΠΈΠ·ΠΎΡΡΠΈ (Proximity Sensor). ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ proximityState ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° UIDevice.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠΎΠΊΠ° Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅! ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π΄ΡΡΠ³ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ iOS Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Settings (ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ) ΠΈ Π·Π°Π΄Π°ΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΡΠΏΠ°Π½ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π²ΠΌΠ΅ΡΡΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. ΠΡΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡΠ΅ΠΌΡ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠ±ΡΡΡΠ½Ρ, ΡΡΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ). ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π²Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ UIDeviceOrientationDidChangeNotification. ΠΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Home (ΠΠΎΠΌΠΎΠΉ), ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΊΠ½ΠΈΠΆΠ½ΠΎΠΉ Π½Π° Π°Π»ΡΠ±ΠΎΠΌΠ½ΡΡ ΠΏΡΠ°Π²ΡΡ, Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ½ΠΈΠΆΠ½ΡΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π² Π°Π»ΡΠ±ΠΎΠΌΠ½ΡΡ Π»Π΅Π²ΡΡ. Π ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π΅ΡΠ½Π΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΎΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° UIDeviceOrientationDidChangeNotification. ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ, ΠΏΠΎΠΊΠ° Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΡΠΊΡΡΡΠΎ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ (Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ°Π· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ), ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½ΠΈΡ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΡΡΠ°Π²ΠΈΡ Π²Π°ΠΌ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π°ΡΠΏΠ΅ΠΊΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, β Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π’Π°ΠΊ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΡΠ°ΠΌΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
ΠΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΈΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ:
#import Β«ViewController.hΒ»
@implementation ViewController
β (void) orientationChanged:(NSNotification *)paramNotification{
NSLog(@"Orientation Changed");
}
β (void)viewDidAppear:(BOOL)paramAnimated{
[super viewDidAppear: paramAnimated];
/* Π‘Π»ΡΡΠ°Π΅ΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ */
[[NSNotificationCenter defaultCenter]
addObserver: self
selector:@selector(orientationChanged:)
name: UIDeviceOrientationDidChangeNotification
object: nil];
}
β (void) viewDidDisappear:(BOOL)paramAnimated{
[super viewDidDisappear: paramAnimated];
/* ΠΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ */
[[NSNotificationCenter defaultCenter]
removeObserver: self
name: UIDeviceOrientationDidChangeNotification
object: nil];
}
@end
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΠΈΠ΄Π°, Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Home (ΠΠΎΠΌΠΎΠΉ) Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠ°ΡΡ ΡΠ°Π· ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ orientationChanged:.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΊΠ΅Ρ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π½Π΅Ρ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΏΠΎΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅).
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ NSUserDefaultsDidChangeNotification.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π΄Π»Ρ iOS, ΡΠ°ΠΉΠ» ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ. ΠΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (Settings) Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ.