How come my IBAction isn't connecting?

324 views Asked by At

So in my attached image I show my subclass I'm creating for my HOME button. I have many VCs with a HOME button and I want to connect them to this class to make them all send the user HOME

So far, I made my button to take this class, as shown in the image. My issue is I'm not able to connect my IBAction here and not sure why.... would appreciate any tips anyone can tell me about why I'm not able to connect my IBAction function to the button right now....

Another confusing thing is that although I haven't given any of the other buttons in this stackview of buttons a class, I'm actually able to connect any of my other buttons in this stackview to my IBAction... which I find odd.

enter image description here

class HomeButton: UIButton {
    @IBAction func showHomeVC(sender: AnyObject) {
        var sb: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        var vc: UINavigationController = sb.instantiateViewController(withIdentifier: "HomeNC-ID") as! UINavigationController
        self.present(vc, animated: false, completion: nil)
    }
}

I'm aware that I can simply go to each VC where there's a HOME button and create an IBAction from each and just paste this code in there and it will work, but I would like to do this another way where I don't have to have so much of the same code being repeated.... I would like to know what changes need to be made to make this happen.

1

There are 1 answers

2
trever On

The error that you are are getting is because you are using the class of UIButton which doesn't have the property to display a view controller. You should present it either on a UIViewController, or one of the other types.

It is linked up but you just can't present a view controller using self (UIButton)