2016-08-14 36 views
1

在我的主視圖中,我有兩個容器在視圖控制器中有一個IBOutlet。原始視圖控制器中的containerview元素的IBOutlet

在兩個容器中,我都有一個圖像和一個標籤,如下圖所示。

enter image description here

我想有一個IBOutlet改變圖像和標籤,但是當我把它拖到原來的視圖控制器它不允許它。

所以在viewcontroller.swift中,正如我所說我可以通過單擊和拖動來訪問每個容器。像這樣

@IBOutlet weak var containerview1: UIView! 
@IBOutlet weak var containerview2: UIView! 

但我試圖訪問圖像視圖和標籤在容器中,這樣的事情:

@IBOutlet weak var containerview1: UIView! 
@IBOutlet weak var containerview2: UIView! 

@IBOutlet weak containerview1_ImageView: UIImageView! 
@IBOutlet weak containerview2_ImageView!: UIImageView! 

我明白,這可能是不這樣做的正確方法。我需要能夠通過viewcontroller.swift以編程方式更改兩個容器視圖中的圖像和標籤。

感謝您的幫助

+0

你想在一個的viewController你的兩個集裝箱的意見(圖像,標籤)?給定的圖像顯示其他兩個視圖控制器與segue。 – Sofeda

+0

我不是起訴我理解你的問題。那是我真實的故事板。我需要viewcontroller.swift能夠更新其他容器視圖中的圖片和標籤。 –

+0

我在這裏看到三個viewControllers。 – Sofeda

回答

1

創建容器

import UIKit 

class ContainerView1: UIView { 

@IBOutlet var containerView1Label: UILabel! 
@IBOutlet var containerView1ImageView: UIImageView! 

} 


import UIKit 

class ContainerView2: UIView { 

@IBOutlet var containerView2Label: UILabel! 
@IBOutlet var containerView2ImageView: UIImageView! 

} 

在主要的viewController故事板兩個不同的類中定義這些類

enter image description here

現在通過拖動設置標籤和ImageView的出口from storyboard

enter image description here

現在拖動主視圖控制器容器出口和使用

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet var containerView1: ContainerView1! 
    @IBOutlet var containerView2: ContainerView2! 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 


    // use like this both container elements 

    containerView1.containerView1Label.text = "Container view 1 lable" 
    //containerView1.containerView1ImageView.image = yourImage file 
    } 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
    } 

}

+0

非常感謝你@SMi!我完全錯誤地做,這比我想象的要容易得多。再次感謝 –

+0

我在這一行收到錯誤「意外地發現零,而解包可選值」:containerView1.containerView1Label.text =「容器視圖1標籤」。我不明白的解釋的唯一部分是當你寫道:「在主視圖控制器storyboard定義這些類」。我認爲這可能是問題所在。 –

+0

「在主視圖控制器故事板定義這些類」這個我的意思是,當你拖動容器的出口到ViewController類時,那些UIView通過故事板識別ContainView1類。我爲此創建了一個演示項目。在我的身邊,它正在毫無錯誤地工作。如果你給你的郵件地址,我可以郵寄。 – Sofeda

相關問題