SORU
2 Mayıs 2010, Pazar


Gömülü navigasyon denetleyicisi ile Popover değil'geri nav t saygı boyutu

Görünümü denetleyicileri küçük bir hiyerarşi içeren bir UİPopoverController bir UİNavigationController hosting var.

Belgeleri takip ettim ve her görünüm denetleyicisi, şu şekilde: manzara popover-içerik boyutu kurdum

[self setContentSizeForViewInPopover:CGSizeMake(320, 500)];

(boyutu her denetleyici için farklı)

Bu ileri popover otomatik olarak itti denetleyicisi karşılık gelen boyutu değişir canlandırır hiyerarşisi içinde gezinmek gibi, beklendiği gibi çalışır.

Ben" görünümü gezinti çubuğu, Geri düğmesi ile yığın içinde, popover boyutu derin görüntülemek ulaştı. büyük olarak kalır-- değiştirmez "Geri gidin, ancak, Bu bana kırık gibi görünüyor; popover ile görünümü yığını çıkıyor olarak ayarlanan boyutları saygı beklerdim.

Bir şey mi kaçırdım?

Teşekkürler.

CEVAP
17 ŞUBAT 2011, PERŞEMBE


Tamam, aynı sorunla uğraşıyordum. Yukarıdaki çözümler hiçbiri küçük bir araştırma yapın ve bu işlerin nasıl yürüdüğünü öğrenmeye karar verdim bu yüzden benim için oldukça iyi çalıştı. Bu ne buldum: contentSizeForViewInPopover ayarladığınızda - sizin görüşünüze göre denetleyicisi popover boyutu farklı denetleyicisine gezinirken değişiklik olsa bile popover kendisi tarafından değiştirilen olmayacak. Geri giderken bu popover boyutunu farklı denetleyicisine gezinirken değişecek zaman, popover boyutunu geri yüklemez ViewWillAppear içinde popover - değişen boyutu çok garip bir animasyon diyelim popover içinde popController derken () - bunu öneriyorum sağlar - Kumanda hiç işe yaramaz içinde kodlanmış boyutu beni ayar için - benim denetleyicileri bazen küçük bazen büyük olmak zorunda - onları sunacak denetleyicisi boyutu hakkında fikri var

Ağrı aşağıdaki gibidir hepsi için bir çözüm: currentSetSizeForPopover boyutu sıfırlamak için viewDidAppear. Ama dikkatli olmak zorunda, zaten alanında currentSetSizeForPopover set olarak aynı boyutta ayarlamak zaman sonra popover boyutu değişmez. Bunun için öncelikle sahte boyutunu önce kuruldu daha farklı olacak olan) uygun boyut ayarı izledi ayarlayabilirsiniz. Bu çözüm eğer kumandanız gezinti kontrol ile iç içe değilse bile çalışacak ve popover denetleyicileri arasında geri gidin ne zaman boyutuna göre değişir.

Kolayca boyutunu ayarlama ile hile yapacağını aşağıdaki yardımcı yöntem ile UİViewController kategori oluşturabilirsiniz:


- (void) forcePopoverSize {
    CGSize currentSetSizeForPopover = self.contentSizeForViewInPopover;
    CGSize fakeMomentarySize = CGSizeMake(currentSetSizeForPopover.width - 1.0f, currentSetSizeForPopover.height - 1.0f);
    self.contentSizeForViewInPopover = fakeMomentarySize;
    self.contentSizeForViewInPopover = currentSetSizeForPopover;
}

O zaman sadece istediğiniz kumanda -viewDidAppear çağırmak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ETrade Supply

    ETrade Suppl

    23 Temmuz 2011
  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011