12

これはかなりユニークな質問です。何時間も検索しましたが、答えが見つかりませんでした。UIViewControllersアプリ内のALLが表示されるようにしUIStatusBarます。しかし、特定のUIViewControllerで をタップするUIButtonと、次のメソッドがカメラの modalView コントローラーを呼び出します。次のメソッドが呼び出されたときにステータスバーを非表示にしたい:

-(BOOL)startCameraControllerFromViewController:(UIViewController*)controller
                                 usingDelegate:(id )delegate 

UIViewControllerベースのステータスバー= YESでplistファイルを変更しようとしました(UIStatusBarそのモーダルビューがプルアップされたときにのみ非表示が必要です)

上記の方法で次のことも試しました。

[[UIApplication sharedApplication] setStatusBarHidden:YES 
                                   withAnimation:UIStatusBarAnimationNone];
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {

    [[UIApplication sharedApplication] setStatusBarHidden:YES 
                                       withAnimation:UIStatusBarAnimationNone];

何も機能していないようです。誰でも助けることができますか?

4

5 に答える 5

16

UIImagePickerController をサブクラス化し、これを .m ファイルに追加するだけで解決しました:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

次に、ピッカーを使用するクラスにインポートし、イメージピッカーを初期化する代わりに、サブクラスを初期化します。

注: plist ファイルで [コントローラーベースのステータス バーの外観を表示] が [YES] に設定されていることを確認してください。

于 2013-12-01T11:39:23.960 に答える
3

前に行ったように、plist で非表示のステータス バーを設定することもできます。次に、アプリ デリゲートで setStatusBarHidden:NO を呼び出して、アプリが最初に読み込まれたときにデフォルト値として設定します。次に、値 YES でステータス バーを非表示にする必要がある場所で、このメソッドを再度呼び出します。

于 2013-12-01T11:46:36.070 に答える
0
-(void)viewWillApper:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}

このコードは、ステータスバーを非表示にするビューコントローラーを設定します。

于 2015-08-13T02:29:13.957 に答える
0

-(BOOL)prefersStatusBarHidden{...} を多数のビュー コントローラーで正常に使用しましたが、ナビゲーション コントローラーなしで表示される特定のモーダル ビューでは使用しませんでした。Karthika によると、Check the iOS status bar hidden with a modal View Controller で成功しました。

于 2015-05-27T02:25:24.800 に答える