2015-11-22 9 views
12

मैं क्या हासिल करना चाहते हैं:पहुँच कंटेनर दृश्य बच्चे गुण तेज

उपयोगकर्ता ViewController में बटन दबाता है तो, बटन का रंग कंटेनर दृश्य में रखा लाल को अपने रंग बदलना चाहिए।

व्यू कंट्रोलर से कंटेनर व्यू में रखे बटन का उपयोग कैसे प्राप्त किया जा सकता है? कदम से

enter image description here

उत्तर

23

कदम:

  1. नाम आपके विचार नियंत्रक और कंटेनर दृश्य नियंत्रक के बीच segue।
  2. अपने व्यू कंट्रोलर में एक संपत्ति जोड़ें जिसमें कंटेनर व्यू कंट्रोलर होगा।
  3. आपके दृश्य नियंत्रक में एक विधि prepareForSegue(_:sender:) लागू करें।
  4. विधि की जांच करता है, तो segue.identifier में बराबर होती है पहचानकर्ता आपने चरण 1
  5. अगर सही है तो में निर्दिष्ट है, तो कदम से अपनी संपत्ति को segue.destinationViewController बचाने 2.
  6. अब आप कंटेनर दृश्य नियंत्रक अपनी संपत्ति में जमा हो जाती है, तो आप अपनी कक्षा से अनुकूलन कर सकते हैं। आपके पास पहले से ही viewDidLoad() विधि में संग्रहीत दृश्य नियंत्रक होना चाहिए।

उदाहरण:

var containerViewController: YourContainerViewControllerClass? 
let containerSegueName = "testSegue" 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == containerSegueName { 
     containerViewController = segue.destinationViewController as? YourContainerViewControllerClass 
    } 
} 
+0

आपके विस्तृत उत्तर के लिए बहुत बहुत धन्यवाद लेकिन मैं कहां कह सकता हूं कि MyButton.backgroundColor = UiColor.blackColor() संपादित करें? और मैं अपने व्यू कंट्रोलर में रखे बटन की कार्रवाई में ओवरराइड फ़ंक्शन कैसे जोड़ूं? – Anokrize

+0

'कंटेनर व्यू कंट्रोलर। MyButton.backgroundColor..' आपके व्यू कंट्रोलर में (कंटेनर व्यू कंट्रोलर नहीं) – sunshinejr

+0

हाँ जो मेरे लिए काम करता है, विस्तृत उत्तर के लिए बहुत धन्यवाद !! – Anokrize

8

मैं segue.identifier पर निर्भर नहीं की सलाह देते हैं, लेकिन सीधे नहीं बल्कि के लिए परीक्षण destination प्रकार:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    super.prepare(for: segue, sender: sender) 

    if let vc = segue.destination as? YourViewController { 
     vc.someVariable = true 
    } 
} 

इस तरह आप एक गलत वर्तनी segue नाम के साथ गलतियों से बचने ।

+0

नहीं कहा जाएगा यह स्वीकार्य उत्तर होना चाहिए। यदि आपके पास एक और यूआईसीओन्टैनर व्यू है और .identifier दृष्टिकोण आज़माएं तो आप असफल हो जाएंगे: डी धन्यवाद @andrey – Tom

संबंधित मुद्दे