我的应用程序保持状态栏隐藏,我正在使用UIActivityViewController来共享链接 我的一个应用视图。
显示UIActivityViewController时,首先显示状态栏。用户与UIActivityViewController交互后(即通过选择消息或其他内容),状态栏会隐藏,但我需要从头开始隐藏它。
如何阻止UIActivityViewController在演示时显示状态栏?
代码:
- (void)openActionSheet {
NSString *shareString = @"link";
NSArray *shareItems = [NSArray arrayWithObject:shareString];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:shareItems applicationActivities:nil];
activityController.excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypePrint, UIActivityTypeSaveToCameraRoll, UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, UIActivityTypePostToVimeo, UIActivityTypeAirDrop, nil];
[self presentViewController:activityController animated:YES completion:^{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}];
}
答案 0 :(得分:0)
- (void)openActionSheet {
NSString *shareString = @"link";
NSArray *shareItems = [NSArray arrayWithObject:shareString];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:shareItems applicationActivities:nil];
activityController.excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypePrint, UIActivityTypeSaveToCameraRoll, UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, UIActivityTypePostToVimeo, UIActivityTypeAirDrop, nil];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[self presentViewController:activityController animated:YES completion:nil];
}
在呈现activityController之前隐藏状态栏。
答案 1 :(得分:0)
在.plist文件中设置基于视图控制器的状态栏外观值。
像这样。现在使用以下方法显示状态栏。 //只需在视图控制器中添加此方法这将自动调用
- (BOOL)prefersStatusBarHidden {
return YES;
}
这将非常有效。
答案 2 :(得分:0)
它像子类化UIActivityViewController一样简单,并将prefersStatusBarHidden设置为true。 Swift代码:
// Subclass of UIActivity view controller that keeps the status bar hidden.
class MyUIActivityViewController : UIActivityViewController
{
override func prefersStatusBarHidden() -> Bool {
return true
}
}
答案 3 :(得分:0)
Swift 1.1回答:
在呈现UIActivityViewController时隐藏状态栏:
确保在.plist文件中,键"查看基于控制器的状态栏外观“boolean设置为”YES“。
添加以下代码:
扩展名UIActivityViewController {
覆盖公共func viewWillAppear(动画:Bool){
self.setNeedsStatusBarAppearanceUpdate()
}
覆盖public func prefersStatusBarHidden() - >布尔{
返回true
}
}
值得注意的是,在显示运行iOS 7.1模拟器的UIActivityViewController时,我只遇到状态栏问题。我似乎没遇到iOS 8.1模拟器的问题。