簡體   English   中英

在 IOS Swift 中的容器視圖中不會觸發按鈕操作

[英]Button action is not fired in container View in IOS Swift

在此處輸入圖片說明 我是 IOS 編程的新手。 我用容器視圖(ContainerViewController.swift)創建了viewController(ViewController.swift),它有2個視圖(FirstViewController.swift和SecondViewViewcontroller.swift),然后我在FirstViewcontroler中添加了按鈕並為此添加了@IBAction,但我不能單擊按鈕(操作不起作用)。 在容器視圖中添加了以下代碼

ContainerViewController.swift

func segueIdentifierReceivedFromParent(button: String){
    buttonClick = button
    if button == "first"
    {
        self.segueIdentifier = "firstSegue"
        self.performSegueWithIdentifier(self.segueIdentifier, sender: nil)
    }
    else if button == "second"
    {
        self.segueIdentifier = "secondSegue"
        self.performSegueWithIdentifier(self.segueIdentifier, sender: nil)
    }
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == segueIdentifier{

        //Avoids creation of a stack of view controllers
        if lastViewController != nil{
            lastViewController.view.removeFromSuperview()
        }

        vc = segue.destinationViewController //as! UIViewController

       self.addChildViewController(vc)
       vc.view.frame = CGRect(x: 0,y: 0, width:self.view.frame.width,height:self.view.frame.height)

      self.view.addSubview(vc.view)
      vc.didMoveToParentViewController(self)
}

FirstViewController.swift

override func viewDidLoad() {
    super.viewDidLoad()
}

@IBAction func getQuotesAction(sender: UIButton){
    print("Button is Clicked")
}

這個 getQuotesAction 按鈕不起作用,請幫我解決這個問題。 提前感謝回復。

我通過增加 containerView 的高度解決了這個問題,因為我的 firstviewcontroller 高度高於 containerView。 現在,子視圖控制器操作工作正常。

在我的情況下,父視圖控制器之一被 ARC 淘汰。 該按鈕用作 UI 元素(點擊時變灰),它的插座正在工作,我能夠更新其隱藏狀態,只是沒有觸發操作。

我在代碼的某個點傳遞了視圖控制器的視圖,但視圖控制器是一個局部變量。 當我將它移到類級別(該類的實例化對象保存在內存中)時,它解決了我的問題。 我花了將近一天的時間,我希望這可以幫助您減少工作量!

上面的代碼告訴在按下一個潛在的成功按鈕后要轉到哪個視圖控制器。 該按鈕不適用於上述代碼。 創建一個插座動作...轉到故事板,使用分屏動作(右上角兩個圓圈),控制單擊並跟蹤您的按鈕到您的班級並釋放。 為您的按鈕命名並確保選擇操作。 將您各自的 go 放在這些括號內。 應該是這樣的:

@IBAction func btnClick(sender: UIButton) {}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM