2013-09-25 36 views
10

Đây là ứng dụng tôi đang chuyển đổi từ iOS 6. Ban đầu ViewController được hiển thị dưới iOS 7 với nội dung của chế độ xem chính bên dưới thanh điều hướng.UINavigationBar xuất hiện dưới dạng bán mờ thay vì màu trắng mờ

Trong giao diện người tạo giao diện người dùng, tôi đã tắt "Dưới thanh hàng đầu" và "Dưới thanh dưới cùng" trong phần "Mở rộng cạnh" để giải quyết vấn đề đó. Điều này làm việc, tuy nhiên, bây giờ trên màn hình này thanh điều hướng dường như mờ (đi qua như màu xám trong ảnh chụp màn hình dưới đây).

Tôi đã cố gắng đặt rõ ràng "Thanh hàng đầu" thành "Thanh điều hướng mờ" trong "Chỉ số mô phỏng", nhưng điều này không có hiệu lực. thiết lập

Tôi đã thử:

self.navigationController.navigationBar.translucent = NO; 

trong mã init ViewController của tôi, nhưng điều này cũng không có tác dụng.

Tôi đang thiếu gì?

CẬP NHẬT: Nếu tôi đặt self.navigationController.navigationBar.translucent = NO; trong ViewController đầu tiên của mình trong ngăn xếp, nó hoạt động. Tuy nhiên, trước khi ViewController được đề cập, tôi làm muốn thanh điều hướng mờ. Đó là chỉ khi tôi nhận được một cái nhìn sâu sắc một vài lớp mà tôi muốn có một thanh không mờ (xem này không có dữ liệu di chuyển, do đó, nó không có ý nghĩa để có nó mờ).

Dưới đây là một ảnh chụp màn hình của những gì tôi nhìn thấy trong thanh nav:

Attempt to make bar white opaque have failed thus far in iOS 7...

+0

http://stackoverflow.com/questions/18929864/how-do-i-change-the-navigation-bar-color-in-ios-7/18929980#18929980 – Rajneesh071

Trả lời

19

Vấn đề là tôi đang gọi

self.navigationController.navigationBar.translucent = NO; 

sau khi quan điểm của tôi xuất hiện. Tôi chuyển mã vào phương pháp viewWillAppear của tôi, và bây giờ nó xuất hiện một cách chính xác:

Correct

+1

Gọi nó trên '-viewDidLoad:' có vẻ để làm việc quá. –

0

tất cả các bạn cần làm cho iOS6 là để thiết lập fullscreenlayout của bộ điều khiển để NO và sau đó đẩy nó để NavigationController bạn

[controller setWantsFullScreenLayout:NO]; 
4

Bạn có thể thử bên dưới mã ...

self.navigationController.navigationBar.barTintColor = [UIColor redColor]; 
self.navigationController.navigationBar.translucent = NO; 

Và Thêm mã này trong chức năng Xem viewDidLayoutSubviews ...

4

Bạn có thể đặt nó trên bảng với một ứng dụng sử dụng này:

UINavigationBar.appearance().navigationBarAppearace.translucent = false 

tôi có xu hướng để làm điều đó trong lớp appdelegate tôi khi ứng dụng ban đầu tải lên.

+0

Tôi tin rằng điều này đã được thay đổi thành 'UINavigationBar.appearance(). Translucent = false' bây giờ là – FortuneFaded

+0

Nó đã được thay đổi thành' isTranslucent' trong Swift 3. –