2013-09-25 56 views
5

Tôi đang gặp khó khăn với vấn đề ios7/objective-c hy vọng ai đó có thể giúp tôi.Thanh trạng thái không hiển thị như mong đợi trên iPad

Là một số nền tảng, tôi có một ứng dụng đang hiển thị như mong đợi trên các thiết bị io6, nhưng tôi đang cố gắng đưa ứng dụng đó tuân thủ ios7.

Nơi mọi thứ trở nên khó hiểu là mã của tôi đang hoạt động như mong đợi trên iPhone nhưng nó không có trên iPad.

Từ những hình ảnh bên dưới, bạn sẽ thấy rằng các thanh trạng thái (vận chuyển, thời gian, pin) làm cho như mong đợi trên iPhone nhưng không phải là iPad:

First the iPhone

Now the iPad:

(lưu ý: vì đây là bài đăng đầu tiên của tôi, tôi không thể trực tiếp nhúng hình ảnh, xin lỗi về điều đó).

Từ quan điểm mã hóa, tôi đã thử tất cả các đề xuất được nêu tại: How to change Status Bar text color in iOS 7 mà không có bất kỳ sự may mắn nào.

Điều tôi làm có thể làm cho ứng dụng hiển thị như mong đợi là định nghĩa sau trong AppDeligate của tôi.

// News page 
newsViewController = [[NewsViewController alloc] init]; 
newsNavigationController = [[UINavigationController alloc] initWithRootViewController:newsViewController]; 
newsNavigationController.navigationBar.translucent = NO; 
newsNavigationController.navigationBar.barStyle = UIStatusBarStyleLightContent; 
newsNavigationController.navigationBar.tag = 4013; 

Bây giờ tôi nghĩ rằng vấn đề đó là mặc dù tôi đã thiết lập các phong cách thanh UIStatusBarStyleLightContent, mà nên đặt văn bản trong trắng, nó không được làm điều này trên iPad. Thay vào đó nó ám chỉ màu đen trên nền đen.

này có vẻ là như vậy, bởi vì nếu tôi loại bỏ các dòng:

newsNavigationController.navigationBar.translucent = NO; 

những thay đổi màu đen với một màu xám đậm, và người vận chuyển, ngày, pin, có thể được nhìn thấy NHƯNG trong màu đen. Tôi sẵn sàng sống với màu xám đậm so với nền đen, nhưng các thanh trạng thái sẽ cần render màu trắng như iphone.

Mọi đề xuất?

P.S. Tôi không chắc chắn nếu điều này sẽ giúp điểm những điều đúng hướng, nhưng iPad đang sử dụng một bộ điều khiển splitview.

Cảm ơn

+0

Just thêm , vấn đề dường như có liên quan đến UISplitViewController. Nếu tôi xóa nó, văn bản trạng thái KHÔNG hiển thị màu trắng như mong đợi. – user2816721

Trả lời

0

Hãy thử đặt Status bar style~ipad: UIStatusBarStyleLightContent trong info.plist của bạn.

+0

Cảm ơn bạn đã gợi ý, nhưng tiếc là không có tình yêu. Tôi cũng đã thử một mục chung chung của chỉ là "Phong cách thanh trạng thái" thiết lập để UIStatusBarStyleLightContent và điều đó đã không giúp đỡ. – user2816721

8

Vì thanh trạng thái sẽ sử dụng tùy chọn bộ điều khiển chế độ xem gốc, điều chỉnh kiểu thanh trạng thái ưa thích cho bộ điều khiển điều hướng của bạn sẽ không hoạt động trên iPad, vì không có bộ điều khiển gốc nào. Do đó, bạn phải ghi đè preferredStatusBarStyle trong một lớp con của UISplitViewController.

@implementation DGBaseSplitViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 

- (UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 

@end 
+0

Đây là giải pháp tốt nhất là – ullstrm

+0

Đây là điều duy nhất làm việc cho tôi. Trước khi nó hoạt động, tôi cũng phải đảm bảo và đặt Split View Controller trong bảng phân cảnh iPad của tôi thành lớp con mới ngoài việc gán lại lớp trong ủy nhiệm ứng dụng. –

5

Phân lớp SplitViewController theo đề xuất của Wayne, có thể là giải pháp hợp lệ, nhưng đây là những gì tôi đã làm để giải quyết vấn đề cho mục đích của mình.

  1. Đặt UI Status Bar ẩn = TRUE (Tôi không muốn thanh trạng thái trên màn hình splash) [mà được lưu trữ trong.plist như UIStatusBarHidden = true & UIStatusBarHidden ~ ipad = true]

  2. Set trong plist - UIStatusBarStyle = UIStatusBarStyleLightContent

  3. Set trong plist - UIViewControllerBasedStatusBarAppearance = false

  4. Trong AppDeligate của tôi, gần đầu, tôi đã thêm dòng:

    [UIApplication sharedApplication] setStatusBarHidden: NO];

    Việc này sẽ xử lý lại thanh trạng thái sau khi màn hình hiển thị giật gân được hiển thị.

0

Sự kết hợp của:

  1. Xem điều khiển dựa trên thanh trạng thái xuất hiện = NO

  2. Tình trạng thanh style = UIStatusBarStyleLightContent

làm việc cho tôi