Add Subview and Remove subview example in Swift

In this video I am going to show you how to add custom user interface as a subview and how to remove it from super view on a button tap event.

Also, in this video I am using the project I have created earlier. You can watch video tutorial and learn how I’ve created Custom User Interface in XIB file here: Creating Custom User Interface with XIB in Xcode 6 and Swift

Source code created during the video


import UIKit
class ViewController: UIViewController {

var mySubview:MyCustomView!

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

}

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

@IBAction func showSubviewButtonTapped(sender: AnyObject) {

if(mySubview != nil && !mySubview.view.hidden)
{
mySubview.view.removeFromSuperview()
}

mySubview = MyCustomView(frame: CGRect(x:10,y:300, width:275, height:147))

mySubview.titleLabel.text = “My custom label text”
mySubview.myButton.setTitle(“Hide”, forState: UIControlState.Normal)
mySubview.myButton.addTarget(self, action: “myHideButtonTapped:”, forControlEvents: UIControlEvents.TouchUpInside)

let catImage = UIImage(named: “cat1.jpeg”)
mySubview.myImage.image = catImage

self.view.addSubview(mySubview)

}

func myHideButtonTapped(sender:UIButton)
{
mySubview.view.removeFromSuperview()
}

}


Learn iOS Development with these Video Courses


How to Make a Freaking iPhone App - iOS 10 and Swift 3
icon icon


iOS 10 & Swift 3: From Beginner to Paid Professional
icon


The Complete iOS 10 Developer Course - Build 21 Apps
icon


Swift 3 - Learn to Code with Apple's New Language
icon icon


Learn How to Build Mobile Apps for iOS with Swift, PHP and MySQL
icon icon

Follow me on one of your favourite social networks to learn about new video tutorials and code examples:

Twitter: @SwiftVideoBlog
Google Plus: https://plus.google.com/+SergeyKargopolov/posts
Facebook: Swift Developer Blog on Facebook



  • Vince

    Hi, I am researching about adding a UISegmentedControl inside UITableViewHeaderFooterView. I am hoping your tutorial will be the final puzzle. Currently, I have been able to add a UILabel without using a Subview. The problem is I just can’t add a UISegmentedControl. So I am thinking I need to create a custom Subview and include a UISegmentedControl in it, and then add the Subview into the UITableViewHeaderFooterView. 🙂 I hope that will work.

  • Vince

    I am stuck on the MyCustomView.swift file error–pls see attached screenshot. And if I change it to “as!”, the error disappears but then I get two same errors on the two super.init() lines. This is the error: “Property ‘self.view’ not initialised at super.init call. Any tips?

    • Hmmm…

      let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
      return view

      Works well for me…

  • Alex

    I have a EXC_BAD_ACCESS when: let nib = UINib(nibName: “CustomView”, bundle: bundle) called