2011-10-16 22 views
8

Yeni bir görünüm denetleyicisinden bir popoverSegue oluşturuyorum ve üçüncü bir denetleyiciyi orijinal yığının üstüne itmek istiyorum.Bir iOS 5 Storyboard'da, yeni bir sahneyi Popover'dan orijinal görüntü denetleyicisine nasıl ittirirsiniz?

  1. MainStoryboard.storyboard dosyayı seçin, yeni bir Single View Application
  2. Select Use Storyboards
  3. oluştur: Bu ben uygulama oluşturma nasıl.
  4. tek View Controller seçip Nesneler Kitaplığı gelen iki yeni View Controller nesneleri tuval
  5. Değişim Title ve yeni Görünüm Kontrolörleri Identifier üzerine Editor->Embed In->Navigation Controller
  6. Drag seçin initialView için Title ve Identifier değiştirin: popoverView ve newView.
  7. Nesne Kitaplığı'ndan initialView ve popoverView'a Round Rect Button nesnesini ekleyin.
  8. Nesne Kitaplığı'ndan newView öğesine bir Label nesnesi ekleyin.
  9. Denetimi initialView düğmesinde tıklatın ve popoverView'a sürükleyin.
  10. Görüntülenen Storyboard Segues menüsünden Popover seçeneğini seçin.
  11. Denetimi popoverView düğmesinde tıklatın ve newView'a sürükleyin.
  12. Storyboard Segues menüsünden Push seçeneğini seçin.
  13. Yapı & Çalıştır.

tıklayın ilk düğmesi ve popover görünür, ancak popover içinde düğmesini tıkladığınızda, hiçbir şey olmuyor (yeni görünümü itmek gerekir ama buna gerek yoktur.)

Ben istiyorum neler Bunu yapmak Navigation Controller yığınının üzerine itmek içindir, ancak bunun için storyboard'un nasıl kurulduğundan emin değilim.

Herhangi bir fikrin var mı?

cevap

1

çalışması lazım gibi geliyor, ama denemek yoksa aşağıdaki: 1. çalışmak ve bunu bir tanımlayıcı vermez segue tıklayın. Diyelim ki PopoverToNewSegue.

  1. Popover view controller için uygulama dosyanızda, düğmeye tıklandığında bir eylem ekleyin.

  2. Bu işlev geçersiz dönüş yapıp şu satırı eklemelidir: [self performSegueWithIdentifier: @ "PopoverToNewSegue" gönderen: self];

Bu sizin salyangozunuzun çalışmasını sağlamalıdır. İstediğin gibi beklemenin her zaman işe yaramadığını fark ettim, ama bu başarısızlık için benim için çalışıyor.

+1

Aynı sorunu yaşıyorum. Yaptığınız gibi performSegueWithIdentifier'ı çağırmayı denedim ve hiçbir şey yapmadı :( – jrwren

6

UINavigationController hiyerarşisini, kendisini sunulan bir popona genişletmek için bekliyorsunuz. Yapmayacak. Aynısı, modal görüntü denetleyicilerini sunmak için de geçerli. popoverView'da self.navigationController günlüğüne kayıt olsaydınız, bunun sıfır olduğunu görürsünüz.

Kendi UINavigationController ürününü içine gömün. popoverView. prepareForSegue:sender:'u geçersiz kılarsanız ve popover'i yapılandırmayı deniyorsanız, hedefin UINavigationController örneğidir ve destinationViewController'dan topViewController değerini almanız gerekir.

+1

açıklamanız sadece sorunumu çözmeme yardımcı oldu (http://stackoverflow.com/questions/13591559/how-to-pass-parameters-to-a-popover- view-controller-inside-a-navigation-controll) Teşekkürler – HpTerm

+0

Bunun küçük bir örneğini ekleyebilir misiniz? – MiQUEL

İlgili konular