所有,我的問題是一個跟進這一個:SWIFT - Hide a view container with a button in the ViewContainerIOS視圖容器:如何設置委託
總之,我有一個UIViewController(主),其中包含一個「查看」和containerView。容器視圖(「containerView」)具有單個按鈕「HIDE」。 containerView最初是隱藏的,當點擊「SHOW」按鈕時,它會被顯示出來。一切都很好。我想使用一個委託,當點擊「隱藏」按鈕時,containerView將被隱藏。
我明白所有的委託的東西,除了containerView如何成爲一個viewController,以便我可以分配主要委託?
容器視圖是一個UIView(以某種方式)指向/包含視圖控制器,但我無法確定如何引用它。
import UIKit
class MainViewController: UIViewController,dismissPickerViewDelegate {
@IBOutlet weak var pickerContainerView: containerView!
@IBOutlet weak var showButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
pickerContainerView.hidden = true
}
@IBAction func showButtonTapped(sender: AnyObject) {
println("+Show")
pickerContainerView.hidden = false
println("-Show")
}
func dismissPicker()
{
println("+dismissPicker")
println("-dismissPicker")
}
}
// ========================
import UIKit
protocol dismissPickerViewDelegate {
func dismissPicker()
}
class pickerViewController: UIViewController {
var delegate : dismissPickerViewDelegate?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var hideButton: UIButton!
@IBAction func hideButtonTapped(sender: AnyObject) {
println("+hideButtonTapped")
delegate?.dismissPicker()
println("-hideButtonTapped")
}
}
輸出: +顯示 -Show + hideButtonTapped -hideButtonTapped
TIA, :BP:
謝謝,但:我收到一個錯誤:'containerView'沒有一個名爲的成員'委託'(我知道這必須是飛行員的錯誤,但是...我沒有看到它) – 2015-02-10 17:06:56
對不起,我誤解了你的代碼。這是非常難以遵循的。我剛纔假設你把'pickerContainerView'作爲'pickerViewController'。 'containerView'如何與任何東西相關? – 2015-02-10 17:09:15
它實質上是UIView的空子類。如果我更改@IBOutlet弱變量pickerContainerView:containerView!到IBOutlet弱var pickerContainerView:UIView!我得到同樣的東西:UIView沒有一個名爲'委託'的成員。 – 2015-02-10 17:12:55