1

iOS 7.1 でステータス バーを非表示にすることに問題を抱えている人を見かけますが、私は逆の問題を抱えています。一度非表示にすると再表示できません。:)

コードのこの部分は、iOS 7 と 7.1 の両方で問題なく動作します。ステータス バーが非表示になり、イメージ ピッカーが表示されます。

if (sourceType == UIImagePickerControllerSourceTypeCamera)
{
    imagePickerController.showsCameraControls = YES;
    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
    }
}

self.imagePickerController = imagePickerController;
[self presentViewController:imagePickerController animated:YES completion:nil];

ただし、ステータス バーを元に戻すはずの部分は、iOS 7.1 では機能しなくなりました。

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
[self dismissViewControllerAnimated:YES completion:NULL];

このコードはイメージ ピッカーを閉じますが、ステータス バーは非表示のままです。

この問題を解決する方法はありますか?

4

1 に答える 1

1

わかりました、私は何かを理解しました。問題は setStatusBarHidden:NO 自体にあるのではなく、画像ピッカーとの組み合わせにあります。

iOS 7.1 では、イメージ ピッカー (カメラ ピッカー) が自動的にステータス バーを非表示にするようです (iOS 7.0 ではそうではありませんでした)。そのため、手動でも非表示にすると、ステータス バーが 2 回非表示になり、何かが壊れているようです。

結論として、iOS 7.1 では、カメラの画像ピッカーを表示する前に手動でステータス バーを非表示にすることは無意味です。

画像ピッカーを使用せずにステータスバーを表示または非表示にすることは問題なく機能します。

于 2014-04-17T22:35:50.413 に答える