iOS7에서 상태 표시줄을 숨길 수 없음
방금 iPhone5 iOS7을 4베타 버전으로 업그레이드했습니다.이 iPhone에서 Xcode 5에서 앱을 실행하면 상태 표시줄이 숨기지 않습니다.
동작하지 않음:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
동작하지 않음:
[UIApplication sharedApplication].statusBarHidden = YES;
Apple 개발자 포럼에 로그인할 수 없습니다.
앱 목록 파일에 "컨트롤러 기반 상태 표시줄 표시 보기"라고 하는 행을 추가하고 NO로 설정합니다.
앱에서 UIImagePickerController를 사용하는 경우 이 기능은 작동하지 않습니다.
http://www.openfl.org/developer/forums/general-discussion/iphone-5ios-7-cant-hide-status-bar/, mgiroux 솔루션에서
뷰 컨트롤러에 메서드를 추가합니다.
- (BOOL)prefersStatusBarHidden {
return YES;
}
Plist에서 다음 속성을 추가합니다.
->Status bar is initially hidden
= = 있음
->View controller-based status bar appearance
==외부
둘 다 추가 - 이제 상태 표시줄이 사라집니다.
단일 보기에서 상태 표시줄을 숨기려면 다음을 사용해야 합니다.
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
처음에는 이 방법이 통하지 않았습니다.다음으로 이 메서드의 설명서에서 "/ StatusBar 설정"이라고 표시되어 있습니다.응용 프로그램이 기본 UIViewController 기반 상태 표시줄 시스템을 사용하는 경우 숨김은 아무 작업도 수행하지 않습니다.
파일에서 . plist plist 에서는 키를 추가합니다.View controller-based status bar appearance
로 NO
그리고 효과가 있었다.
레거시 UIApplication 방법을 사용하여 상태 표시줄을 숨기거나 표시하려면 앱에서 iOS 7에 대한 목록 값을 설정해야 합니다.
View-Controller Based Status Bar Appearance = NO
YES라고 합니다.NO로 하겠습니다.YES]로표시줄을 수 [YES](으)로 덮어쓰는 의 각 뷰 있습니다.prefersStatusBarHidden
네, 그렇습니다.
앱의 상태 표시줄 모양 또는 가시성을 변경해야 하고 View-Controller Based 상태 표시줄 모양이 YES로 설정된 경우 가장 바깥쪽 보기 컨트롤러에서 다음을 호출해야 합니다.
setNeedsStatusBarAppearanceUpdateAnimation
iOS7에서 상태 표시줄을 숨기려면 코드 두 줄이 필요합니다.
용용: :
(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
을 쓰다[application setStatusBarHidden:YES];
info.plist에서 추가
View-Controller Based Status Bar Appearance = NO
이 문제에 대해 권장되는 조합은 매우 많지만, 문제는 iOS 6과 7이 상태 표시줄을 숨기기 위해 다른 방법을 사용한다는 것입니다.iOS 7에서 iOS6 스타일의 동작을 활성화하기 위해 플리스트 설정을 성공한 적은 없지만, iOS 6+를 지원하도록 앱을 구축하는 경우 특정 뷰 컨트롤러가 상태 표시줄을 숨기도록 하려면 한 번에 세 가지 방법을 사용해야 합니다.
// for ios 7
- (BOOL)prefersStatusBarHidden{
return YES;
}
// for ios 6
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// explicitly set the bar to show or it will remain hidden for other view controllers
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
이 조작은, 플레이스트의 설정에 관계없이 동작합니다.
상태 표시줄을 숨기려면 아래 두 가지 변경을 모두 수행해야 했습니다.
상태 표시줄을 숨길 뷰 컨트롤러에 다음 코드를 추가합니다.
- (BOOL)prefersStatusBarHidden
{
return YES;
}
이것을 .plist 파일에 추가합니다(어플리케이션 설정에서 'info'로 이동합니다).
View controller-based status bar appearance --- NO
그런 다음 다음 다음 회선을 호출하여 상태 표시줄을 숨길 수 있습니다.
[[UIApplication sharedApplication] setStatusBarHidden:YES];
이 두 줄을 info.plist 파일에 추가합니다.iOS7과 이전 버전 모두 수정됩니다.
- 상태 표시줄은 처음에는 숨겨져 있습니다 = YES
- 컨트롤러 기반 상태 표시줄 모양 보기 = 아니요
프로젝트로 이동하여 [Targets]-> [ General ]를 선택하고 [Status Bar style...]를 표시합니다.애플리케이션 기동중에 숨김" 체크 박스가 온이 됩니다.이거면 될 거야.
다음과 같은 간단한 방법을 사용해 보십시오.
- (void)viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
- (void)viewWillDisappear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}
나에게 효과가 있었던 것은 당신의 목록에 다음 사항을 추가한 것뿐입니다.
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
은 체체 a a a a a a a a a a a a a a a a a a a a a a a를 만드는 입니다.category
UIViewController
""를 덮어씁니다"prefersStatusBarHidden
이렇게 하면 모든 싱글 뷰 컨트롤러에 이 방법을 쓸 필요가 없습니다.
UIView 컨트롤러+Hide Status Bar.h
#import <UIKit/UIKit.h>
@interface UIViewController (HideStatusBar)
@end
UIView 컨트롤러+Hide Status Bar.m
#import "UIViewController+HideStatusBar.h"
@implementation UIViewController (HideStatusBar)
//Pragma Marks suppress compiler warning in LLVM.
//Technically, you shouldn't override methods by using a category,
//but I feel that in this case it won't hurt so long as you truly
//want every view controller to hide the status bar.
//Other opinions on this are definitely welcome
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
- (BOOL)prefersStatusBarHidden
{
return YES;
}
#pragma clang diagnostic pop
@end
목록 추가 ----
컨트롤러 기반 상태 표시줄 표시 --- NO
각 뷰 컨트롤러 쓰기
- (void) viewDidLayoutSubviews { CGRect viewBounds = self.view.bounds; CGFloat topBarOffset = 20.0; viewBounds.origin.y = -topBarOffset; self.view.bounds = viewBounds; [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//for status bar style }
iOS 7에서 상태 표시줄 문제가 발생하지만 앱의 대상은 5.1 이상이어야 합니다.
이 스레드에 대한 답변의 대부분은 유효합니다.다이나믹한 것을 실행하려고 하면, 최종적으로 전화할 필요가 있는 것으로 알고 있습니다.
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
iOS 7에서 상태 표시줄을 숨기는 단계:
1. 어플리케이션 info.plist 파일로 이동합니다.
2. 컨트롤러 기반의 상태 바아피아란스를 설정, 표시: 부울 NO
상태 표시줄 문제를 해결했으면 좋겠는데...
단일 뷰에서 iOS 7을 사용하는 경우 view에서 사용할 수 있는 방법:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
상태 표시줄을 표시하려면 다음을 사용합니다.
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
-(BOOL)prefersStatusBarHidden
{
return YES;
}
정보 목록 파일에서 다음 속성에 대한 행을 추가합니다.
속성 이름: 컨트롤러 기반 상태 표시줄 모양을 표시합니다.
값 : NO
앱의 루트 뷰 컨트롤러에 다음 메서드를 추가해 보십시오.
- (BOOL)prefersStatusBarHidden
{
return YES;
}
프로젝트에 게재되어 있는 옵션을 모두 시험해 봤지만 효과가 없었습니다.제 생각엔 제가 제 개인기를 업데이트 한 것과 관련이 있을 것 같아서요.Xcode
그리고 iOS7에 대한 앱과 일부 설정이 어딘가에서 엉망이 되었습니다.완전히 새로운 프로젝트를 구축하기로 결심했습니다.다음 중 하나:Status bar is initially hidden = YES
" 및 "View controller-based status bar appearance = NO
" 다른 많은 사람들이 말했듯이 올바르게 작동했습니다(즉, 상태 표시줄 없음).
따라서 이전 버전에서 iOS 7로 업데이트되고 다른 모든 옵션을 사용해 본 프로젝트를 진행하고 있다면 새로운 프로젝트를 구축하는 것이 좋습니다.
2019년에는...
상태 표시줄이 없는 앱을 만들려면
info.plist를 클릭하고 "행 추가"를 마우스 오른쪽 버튼으로 클릭합니다.
다음 설정을 사용하여 다음 2개를 추가합니다.
그게 다예요.
팟 UIView Controller+라는 코드를 확인할 수 있습니다.ODStus 바
Swift 2.0+ IOS 9의 경우
override func prefersStatusBarHidden() -> Bool {
return true
}
특정 뷰의 상태 표시줄을 숨기려면컨트롤러
- (BOOL)prefersStatusBarHidden {
return YES;
}
상태 표시줄 Hidden for Application 설정:
세트
View controller-based status bar appearance
로.NO
.plist 및 in에서application: didFinishLaunchingWithOptions:
설정:[application setStatusBarHidden:YES];
주의: set Status Bar숨김: 사용되지 않음
또는
프로젝트 설정 -> 일반 탭 -> 전개 정보
확인.
Hide Status bar
박스를 클릭합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
application.statusBarHidden = YES;
return YES;
}
왜 Apple Developer Forum에 로그인할 수 없는지는 모르겠지만, (NDA를 위반하지 않고) Xcode를 통해 상태 표시줄을 숨길 수도 있습니다.응용 프로그램 대상의 일반적인 설정입니다.
언급URL : https://stackoverflow.com/questions/18059703/cannot-hide-status-bar-in-ios7
'programing' 카테고리의 다른 글
Conda가 기본 환경을 활성화하지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.04.21 |
---|---|
TableViewController, iOS - Swift에서 여분의 빈 셀을 삭제하는 방법 (0) | 2023.04.21 |
Git 원격 분기가 삭제되었지만 'branch -a'에 계속 표시됨 (0) | 2023.04.21 |
메서드를 찾을 수 없습니다. '!0[] 시스템.Array. Empty()' (0) | 2023.04.21 |
지정된 사용 권한...(0xE8008016).오류 iOS 4.2 (0) | 2023.04.16 |