2017-11-14 36 views
6

Tôi đã kế thừa ứng dụng cũ và được giao nhiệm vụ cập nhật ứng dụng đó cho iOS 11. Trong một chế độ xem, người dùng có thể nhấp vào tên và thêm người dùng đó vào danh bạ của họ . Tuy nhiên, khi chuyển sang chế độ xem 'thêm liên hệ' trong iOS 11, thanh điều hướng và trạng thái sẽ hiển thị màu trắng. Nó hoạt động tốt trên iOS 10 trở xuống.Thanh tiêu đề và điều hướng màu trắng trong iOS 11 trên chế độ xem bằng cách sử dụng ABNewPersonViewController

Dưới đây là một ảnh chụp màn hình so sánh iOS 10 (trái) lên iOS 11 (bên phải):

iOS 10 vs 11 Lưu ý rằng quan điểm này được tạo lập trình, chứ không phải thông qua các kịch bản:

ABRecordRef person = ABPersonCreate(); 
//... 
ABNewPersonViewController *newPersonViewController = [[ABNewPersonViewController alloc] init]; 
[newPersonViewController setDisplayedPerson:person]; 
newPersonViewController.newPersonViewDelegate = self; 
UINavigationController *newNavigationController = [[UINavigationController alloc] initWithRootViewController:newPersonViewController]; 
[self presentViewController:newNavigationController animated:YES completion:nil]; 
CFRelease(person); 

Tôi đã đã thử một vài điều khác nhau dựa trên những gì tôi tìm thấy trực tuyến:

  1. Tôi thấy mình có thể đặt màu nền của thanh điều hướng theo cách thủ công nhưng lá đó thanh trạng thái trắng.
  2. Tôi đã thử thêm HeightConstraint vào chế độ xem mới. Tôi xác nhận ràng buộc được thêm vào, nhưng nó không giúp được gì. Tuy nhiên, tôi đã phải đặt giá trị với một hằng số (đã thử 0, 100, 1000 chỉ để thử nghiệm) và không thể nhận được ràng buộc tương đối hoạt động đúng cách. Bất kể, không chắc chắn nếu nó có giá trị đi xuống con đường đó.
  3. Tôi thấy một số bài viết trực tuyến mà iOS 11 thay đổi cách thanh trạng thái/thanh điều hướng hoạt động và thiết lập được đề xuất setContentInsetAdjustmentBehavior thành KHÔNG BAO GIỜ. Tuy nhiên, điều này có vẻ như nó chỉ hoạt động trên ScrollViews hoặc TableViews. Chế độ xem thêm liên hệ này chỉ xuất hiện để trở thành UIView.
  4. Đã cố gắng chuyển sang CNContactViewController (vì ABNewPersonViewController không được chấp nhận) và chạy vào cùng một vấn đề.

Mọi lời khuyên sẽ hữu ích.

Chỉnh sửa: Màu thanh điều hướng được đặt trong AppDelegate trong phương thức didFinishLaunchingWithOptions như được thấy bên dưới. Tôi đã thử xóa tất cả các logic tùy chỉnh được đặt ở đây. Điều này phần nào cố định thanh điều hướng, nhưng thanh trạng thái vẫn còn màu trắng với văn bản màu trắng.

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// Override point for customization after application launch. 

if ([MPUtils isIOS7OrHigher]) { 
    [[UIToolbar appearance] setBarTintColor:[MPColors colorWithColorString:MPColorString0A3B77]]; 
    [[UINavigationBar appearance] setBarTintColor:[MPColors colorWithColorString:MPColorString0A3B77]]; 

    //color of text on buttons: 
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; 
    [[UINavigationBar appearance] setTitleTextAttributes:@{UITextAttributeTextColor : [UIColor whiteColor]}]; 
} else { 
    [[UIToolbar appearance] setTintColor:[MPColors colorWithColorString:MPColorString0A3B77]]; 
    [[UINavigationBar appearance] setTintColor:[MPColors colorWithColorString:MPColorString0A3B77]]; 
} 

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

[MPUserDataSynchronizer syncUserData]; 

return YES; 
} 

Trả lời

0

ABNewPersonViewController không được dùng nữa trong iOS 9. Sử dụng CNContactViewController để thay thế.

+0

Quên đề cập đến Tôi đã thử thay thế điều này bằng khung công tác Liên hệ và sự cố tương tự đã xảy ra. Tôi sẽ chỉnh sửa câu hỏi. – Dave4988

+0

Bạn có thể đăng màu nền của thanh điều hướng đang được đặt không? –

+0

Chắc chắn, tôi sẽ thêm vào câu hỏi. – Dave4988

Các vấn đề liên quan