2017-11-14 111 views
6

kullanarak iOS 11'de Başlık ve Gezinme çubukları beyaz görünümünde Eski bir uygulama miras aldım ve iOS 11 için güncellemeyle görevlendirildim. Bir görünümde, kullanıcı bir ada tıklayabilir ve bu kişiyi kişilerine ekleyebilir . Ancak, iOS 11'de 'kişi ekle' görünümüne gidildiğinde, gezinme ve durum çubukları beyaz renkte görünür. IOS 10 ve altında iyi çalışıyor.ABNewPersonViewController

İşte iOS 11'e iOS 10 (solda) karşılaştıran bir ekran görüntüsü var (sağ):

bu görünüm programlı değil, storyboard yoluyla oluşturulur

iOS 10 vs 11 Not olun: Ben ettik

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); 

Çevrimiçi bulduğum şeye göre birkaç farklı şey denedim:

  1. Gezinme çubuğunun arka plan rengini elle ayarlayabildiğimi buldum, ancak bu yapraklar Durum çubuğu beyaz.
  2. Yeni görünüme bir HeightConstraint eklemeyi denedim. Kısıtlamanın eklendiğini doğruladım, ama yardımcı olmadı. Bununla birlikte, değeri bir sabitle (test için sadece 0, 100, 1000) denedim ve göreceli kısıtlamayı düzgün bir şekilde alamadım. Ne olursa olsun, bu yoldan aşağı gitmeye değip değmediğinden emin değil.
  3. Bazı makaleleri gördüm, iOS 11 durum/nav çubuklarının nasıl çalıştığını değiştiriyor ve ayarlanmış olan setContentInsetAdjustmentBehavior ASLA ayarını önerdi. Ancak, bu yalnızca ScrollViews veya TableViews üzerinde çalışıyor gibi görünüyor. Bu kişi ekleme görünümü sadece UIView olarak görünüyor.
  4. CNContactViewController'a geçiş (ABNewPersonViewController olarak onaylanmadı) ve aynı sorunla karşılaştı.

Herhangi bir tavsiye yardımcı olabilir.

Düzenleme: Gezinme çubuğu renkleri, aşağıda görüldüğü gibi didFinishLaunchingWithOptions yönteminde AppDelegate değerine ayarlanır. Burada ayarlanan tüm özel mantığı kaldırmayı denedim. Bu biraz navigasyon çubuğunu sabitledi, ancak durum çubuğu beyaz yazı ile hala beyazdı.

-(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; 
} 

cevap

0

ABNewPersonViewController yerine iOS 9. Kullanımı CNContactViewController önerilmiyor.

+0

Unutmamanın sebebini İletişim çerçevesini kullanarak değiştirmeyi denedim ve aynı sorun oluştu. Soruyu düzenleyeceğim. – Dave4988

+0

Gezinme çubuğunun arka plan renginin nasıl ayarlandığını gönderir misiniz? –

+0

Elbette, soruya ekleyeceğim. – Dave4988