Bird
Raised Fist0
iOS Swiftmobile~5 mins

Button and action handling in iOS Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of a UIButton in iOS development?
A UIButton is a user interface element that users can tap to trigger an action or event in the app.
Click to reveal answer
beginner
How do you connect a UIButton to an action in Swift code?
You connect a UIButton to an action by creating an @IBAction function and linking it to the button's Touch Up Inside event in Interface Builder or programmatically.
Click to reveal answer
beginner
What does the @IBAction keyword indicate in Swift?
@IBAction marks a method that can be connected to a user interface element event, like a button tap, allowing the method to be called when the event occurs.
Click to reveal answer
intermediate
How can you add a button action programmatically in Swift?
You create a UIButton instance, then use addTarget(_:action:for:) to specify the method to call when the button is tapped.
Click to reveal answer
intermediate
Why is it important to specify the event type like .touchUpInside when adding a button action?
Specifying the event type ensures the action triggers only on the intended user interaction, such as when the user lifts their finger inside the button area, preventing accidental triggers.
Click to reveal answer
Which keyword is used to mark a method as an action for a UIButton in Swift?
A@IBOutlet
Bvar
Cfunc
D@IBAction
What event type is commonly used to trigger a button action when the user taps it?
A.valueChanged
B.touchDown
C.touchUpInside
D.editingDidEnd
How do you connect a UIButton to an action in Interface Builder?
ADrag from the button to the @IBAction method
BDrag from the button to the @IBOutlet variable
CWrite code in viewDidLoad
DUse addSubview
Which method adds an action to a UIButton programmatically?
AaddTarget(_:action:for:)
BaddAction(_:for:)
CaddGestureRecognizer(_:)
DaddSubview(_:)
What happens if you do not specify the event type when adding a button action?
AThe action will never be called
BThe action triggers on all events
CThe action triggers only on .touchDown
DThe app crashes
Explain how to create a button and handle its tap action in Swift using Interface Builder.
Think about the steps from dragging a button to writing the action method.
You got /4 concepts.
    Describe how to add a button and its action programmatically in Swift code.
    Focus on creating the button and linking the tap event in code.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a UIButton in an iOS app?
      easy
      A. To let users tap and trigger actions
      B. To display static text only
      C. To store data persistently
      D. To manage app navigation automatically

      Solution

      1. Step 1: Understand UIButton role

        A UIButton is a UI element that users can tap to perform an action.
      2. Step 2: Compare options with UIButton purpose

        Only To let users tap and trigger actions describes this interaction purpose correctly.
      3. Final Answer:

        To let users tap and trigger actions -> Option A
      4. Quick Check:

        UIButton = user tap action [OK]
      Hint: Buttons are for user taps triggering actions [OK]
      Common Mistakes:
      • Confusing buttons with labels
      • Thinking buttons store data
      • Assuming buttons handle navigation automatically
      2. Which of the following is the correct way to add an action to a UIButton in Swift?
      easy
      A. button.onTap = buttonTapped()
      B. button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
      C. button.addAction(#selector(buttonTapped))
      D. button.action = #selector(buttonTapped)

      Solution

      1. Step 1: Recall UIButton action syntax

        The correct method is addTarget(_:action:for:) with #selector for the method.
      2. Step 2: Match syntax with options

        Only button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside) uses the correct method and parameters.
      3. Final Answer:

        button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside) -> Option B
      4. Quick Check:

        addTarget + #selector + .touchUpInside = correct [OK]
      Hint: Use addTarget with #selector and .touchUpInside [OK]
      Common Mistakes:
      • Using nonexistent addAction method
      • Assigning action directly without addTarget
      • Calling the selector method instead of referencing it
      3. Given the code below, what happens when the button is tapped?
      let button = UIButton()
      button.addTarget(self, action: #selector(showMessage), for: .touchUpInside)
      
      @objc func showMessage() {
          print("Button was tapped")
      }
      medium
      A. The app crashes due to missing button title
      B. Nothing happens because the method is missing @objc
      C. The message "Button was tapped" is printed to the console
      D. The button changes color automatically

      Solution

      1. Step 1: Check action method annotation

        The method showMessage is marked with @objc, so it can be called by the button.
      2. Step 2: Understand button tap behavior

        When tapped, the button triggers showMessage, which prints the message.
      3. Final Answer:

        The message "Button was tapped" is printed to the console -> Option C
      4. Quick Check:

        @objc method called on tap = print message [OK]
      Hint: @objc method runs on button tap printing message [OK]
      Common Mistakes:
      • Forgetting @objc on action method
      • Expecting UI changes without code
      • Confusing button title with action effect
      4. Identify the error in this code snippet that prevents the button action from working:
      let button = UIButton()
      button.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
      
      func buttonPressed() {
          print("Pressed")
      }
      medium
      A. The button title is not set
      B. The button is not added to the view
      C. The selector syntax is incorrect
      D. The action method is missing the @objc attribute

      Solution

      1. Step 1: Check method declaration for selector

        Methods used with #selector must be marked @objc to be visible to Objective-C runtime.
      2. Step 2: Verify other code parts

        While adding button to view and title are important, they don't prevent action from being called.
      3. Final Answer:

        The action method is missing the @objc attribute -> Option D
      4. Quick Check:

        @objc missing on action method = no call [OK]
      Hint: Action methods need @objc to be called by button [OK]
      Common Mistakes:
      • Ignoring @objc requirement
      • Thinking button must have title for action
      • Assuming selector syntax is wrong when it's correct
      5. You want to create a button that changes its title to "Clicked" when tapped. Which code snippet correctly implements this behavior?
      let button = UIButton()
      button.setTitle("Tap me", for: .normal)
      button.addTarget(self, action: #selector(changeTitle), for: .touchUpInside)
      
      @objc func changeTitle() {
          // What goes here?
      }
      hard
      A. self.button.setTitle("Clicked", for: .normal)
      B. button.setTitle("Clicked", for: .normal)
      C. button.title = "Clicked"
      D. changeTitle.title = "Clicked"

      Solution

      1. Step 1: Understand scope of button variable

        The button variable is declared outside the method, so inside changeTitle() you must reference it properly, usually as self.button.
      2. Step 2: Use correct method to change title

        UIButton's title is changed using setTitle(_:for:) method, not by assigning to a property.
      3. Final Answer:

        self.button.setTitle("Clicked", for: .normal) -> Option A
      4. Quick Check:

        Use self.button.setTitle to update title [OK]
      Hint: Use self.button.setTitle("Clicked", for: .normal) inside action [OK]
      Common Mistakes:
      • Trying to assign title directly
      • Using button without self when needed
      • Calling setTitle on wrong object
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard