I have developed an app that uses swipe gesture from bottom up. It was working perfectly in iOS 6, but now iOS 7 came out, and it works maybe 1 out of 25 times: i get iOS 7 Control Center almost every time. Obviously, Control Center can be disabled in the Settings, but that is up to the phone owner, and I cannot control that. So my question is, is there a way to disable Control Center for the time when my app is running (or more likely, is "active", as I would want Control Center back if the user is not actively using my app). If not, what are the alternatives? Is relocating/reworking that functionality is the only solution?
-
3Not an option. Unlikely to be an option in the future. Best to rework your interface. – Wain Oct 10 '13 at 21:24
-
1@Wain is there a particular reason why it would be unlikely in the future? – mike.tihonchik Oct 11 '13 at 12:52
-
4Because Apple want to maintain consistency for the users. If any app can turn it off how will users know? – Wain Oct 11 '13 at 15:11
-
@Wain well, I was thinking in terms of how I can turn on/off Status Bar when I am running my app – mike.tihonchik Oct 11 '13 at 15:41
-
6But that is visible - the user can see the status bar isn't there. If the gesture doesn't work, how does the user know why? There is a risk most will think something is broken... – Wain Oct 11 '13 at 15:53
3 Answers
Actually there is an option. You cannot disable it. But you can prevent the accidental launch. Just disable the status bar. Then on swipe the user will be prompted whether the control centre have to be launched or not. it won't be launched in a single swipe. Instead an arrow appears on the first swipe and the user need to click and drag the arrow to launch the control centre, hence prevent accidental launch. Use this code to disable status bar.
You can disable the status bar using this delegate in IOS7:
- (BOOL) prefersStatusBarHidden
{
return YES;
}
And this method in IOS6.1 and prior:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];

- 7,765
- 13
- 62
- 113
-
2That's for notifications (swiping from the top). The question is about control centre (swiping from the bottom) – jrturton Nov 12 '13 at 10:40
-
17Hiding the status bar prevents the accidental launch of both the notifications and control centre. I have tried it. Please try it and see the trick. PS:It doesn't disable anything, just prevents the accidental launch. – Harikrishnan Nov 12 '13 at 11:37
-
1@HarikrishnanT thank you for suggestion, but this is not a solution for me. I have a functionality that was triggered by "up"-swipe from the bottom, so I don't want any control center at all, accidental or not. – mike.tihonchik Nov 12 '13 at 13:33
-
2@mike.tihonchik: Read this carefully. Especially the 7th point under "Things Every App Should Do": https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/Scoping.html – Harikrishnan Nov 13 '13 at 05:16
-
1@HarikrishnanT thank you for the link. The problem i am facing is that iOS determines that Control Center is needed 99% of the times. Initial design called for an image that was located on the bottom of the screen (about 20px in height), which, when "dragged" up would bring a new view (very similar to what Control Center is). Anyway, I am redesigning this to move the functionality somewhere else [up vote for the useful link] – mike.tihonchik Nov 13 '13 at 13:57
-
1In that case, a small suggestion, why not use a tap recogniser in the image? When the image is "tapped" instead of being "dragged", it would bring your new view. – Harikrishnan Nov 15 '13 at 06:34
-
1@HarikrishnanT the problem is, if you tap anywhere in the bottom region of the screen (about 20px in height; this is where the image is) Control Center "arrow" shows up – mike.tihonchik Nov 15 '13 at 14:27
-
I'm confused with where to put the prefersStatusBarHidden method and what delegate/protocol that is. – kraftydevil Oct 13 '14 at 22:17
-
@kraftydevil `prefersStatusBarHidden` is a method that may optionally implemented by a custom subclass of `UIViewController` – SimplGy Jun 18 '15 at 13:36
Starting with the iOS 11 SDK (compiled in Xcode 9) additionally to implementing prefersStatusBarHidden:
Objective-C:
- (BOOL) prefersStatusBarHidden
{
return YES;
}
Swift 4+:
override var prefersStatusBarHidden: Bool { return true }
you also need to implement preferredScreenEdgesDeferringSystemGestures:
Objective-C:
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures{
return UIRectEdgeAll;
};
Swift 4+:
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
return .all
}
Otherwise the Control/Notification Center appear directly; instead of first showing the gray box with a up/down arrow that needs to be dragged up/down.

- 4,783
- 1
- 33
- 47
No alternatives, really. The best you can do is warn users and ask them to go to settings to turn it off.
Realistically, you'll lose a lot of users just by asking that, so you should change the gestures.

- 18,398
- 15
- 71
- 89
-
1Yeah, unfortunately, I moved control icons from the top to the bottom to avoid collision with the notification center. Then iOS7 comes out, and the bottom is no longer an option because the user can swipe from the bottom. So top and bottom are both out. Left and right are poor options because of real estate issues. – Victor Engel Mar 07 '14 at 19:56