2016-03-23 16 views
0

Swift için yeni, Swift ile ilgili hemen hemen her şey hakkında bilgi eksikliği nedeniyle özür dilerim.Başka bir ViewController'daki bir ViewController denetim vars/IBOutlets denetimini

Şu anda, ARSlidingPanel kitaplığını kullanan bir uygulama geliştiriyorum, şimdi ekranda iki ViewControler var (Ana görünüm, koyu arka plan ve Yeşil görünüm olan Panel görünümü). Vars/call işlevlerini Panel görünümünden Ana görünümüne ayarlayabilmek istiyorum. Örneğin, panel görünümünde bir düğmeyi tıklatırsam, ana görünümde bir metin görüntülemek istiyorum. Şu anda, statik varsayı kullanmaya başladım ama Java/Android hakkındaki bilgimden, muhtemelen bunun doğru yol olmadığını biliyorum. Bir şeyler yapmanın daha temiz/daha kabul edilebilir bir yolu için ipucu var mı?

enter image description here

+0

2 tane çözüm görüyorum, en basit olanı ikinci VC'nizdeki ana VC'nin zayıf bir referansını saklamaktır (ikinci VC sınıfınızda zayıf zayıflama anaVC: myVCClass!), Sadece ikinci VC'yi oluşturduğunuzda ayarlamanız veya Segue'i ara. Başka bir çözüm daha sofistike bir delege tasarım deseni kullanmaktır. –

+0

Bu kullanım durumunda delege tasarım desenini biraz daha açıklayabilir misiniz? – jaytj95

+1

Protokol MainVCDelegate { \t func myButtontapped (gönderen: UIButton) } 'gibi bir iletişim kuralı tanımlayın ve MainVC' var delegesinde: AnaVCDelegate? 'Içindeki bir temsilciyi referans olarak kaydedin ve gerektiğinde, düğmedeki gibi arayın. self.delegate? .myButtontapped (sender) 'olarak adlandırılır. SecondVC sınıf IIVC: UIViewController, MainVCDelegate'i devralır ve temsilci func uygulamalarındaki görünümü değiştirmeli, oluştururken myMainVC.delegate = mySecondVC'yi ayarlamayı unutma ve gitmek için iyi olmalısınız. –

cevap

1

burada birkaç farklı seçenek vardır. Bununla birlikte, akla ilk gelen şey, aynı görünüm için iki bağımsız denetleyiciyi kullanmanız gerektiğidir.

  • Delegeleri kullanmak bir çözüm olacaktır. Örneğin, denetleyicinin çıkışlarında değerleri ayarlamak, sonra da bir görünüm denetleyicisinde protokolü uygulamak, ortaya çıkarmak istediğiniz yöntemleri ve işlevselliği olan hızlı bir iletişim kuralı yazın. Diğer görünüm denetleyicinizde, UIViewController -let temsilci: UIViewController - bir temsilci değişkeni oluşturabilir ve görünümü değiştirmek için temsilci örneğini kullanabilirsiniz. Here's a guide on this
  • Daha da iyisi, görünüm denetleyicileri görünümünüzün alt görüntü denetleyicisi olarak ekleyebilir, elma bu konuda iyi bir belge sağlar, siz find it here yapabilirsiniz.

Bu yardımcı olur umarım.

İlgili konular