Bird
Raised Fist0
iOS Swiftmobile~10 mins

Toggle switch in iOS Swift - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a toggle switch in SwiftUI.

iOS Swift
Toggle(isOn: $[1]) {
    Text("Enable feature")
}
Drag options to blanks, or click blank then click option'
AisEnabled
BisOn
CtoggleState
DfeatureToggle
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name that is not declared as @State.
Forgetting the $ sign before the variable name.
2fill in blank
medium

Complete the code to declare a state variable for the toggle switch.

iOS Swift
@State private var [1] = false
Drag options to blanks, or click blank then click option'
AtoggleState
BisOn
CswitchValue
DfeatureEnabled
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name different from the one bound to the toggle.
Not marking the variable with @State.
3fill in blank
hard

Fix the error in the toggle binding by completing the code.

iOS Swift
Toggle(isOn: [1]) {
    Text("Notifications")
}
Drag options to blanks, or click blank then click option'
A$toggleState
BtoggleState
C*toggleState
D&toggleState
Attempts:
3 left
💡 Hint
Common Mistakes
Passing the variable without $ causes a type error.
Using & or * are not valid in SwiftUI bindings.
4fill in blank
hard

Fill both blanks to create a toggle with a label and a state variable.

iOS Swift
@State private var [1] = false

Toggle(isOn: $[2]) {
    Text("Dark Mode")
}
Drag options to blanks, or click blank then click option'
AdarkModeEnabled
BdarkMode
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names in declaration and binding.
Forgetting the $ in the binding.
5fill in blank
hard

Fill all three blanks to create a toggle that updates a text label based on its state.

iOS Swift
@State private var [1] = false

var body: some View {
    VStack {
        Toggle(isOn: $[2]) {
            Text("Airplane Mode")
        }
        Text([3] ? "On" : "Off")
    }
}
Drag options to blanks, or click blank then click option'
AairplaneMode
DisOn
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names in different places.
Not using the variable in the text ternary expression.

Practice

(1/5)
1. What does a UISwitch control in an iOS app?
easy
A. It lets users toggle between on and off states.
B. It displays a list of options to select from.
C. It shows a progress bar for tasks.
D. It opens a new screen when tapped.

Solution

  1. Step 1: Understand the purpose of UISwitch

    A UISwitch is designed to let users turn a setting on or off with a simple tap.
  2. Step 2: Compare with other UI controls

    Unlike lists or progress bars, UISwitch specifically toggles between two states: on and off.
  3. Final Answer:

    It lets users toggle between on and off states. -> Option A
  4. Quick Check:

    UISwitch = toggle on/off [OK]
Hint: UISwitch always toggles between two states [OK]
Common Mistakes:
  • Confusing UISwitch with buttons that open new screens
  • Thinking UISwitch shows progress or lists
  • Assuming UISwitch can select multiple options
2. Which of the following is the correct way to create a UISwitch in Swift?
easy
A. let toggle = UISwitch.new()
B. let toggle = Switch()
C. let toggle = UISwitch()
D. let toggle = UISwitch.create()

Solution

  1. Step 1: Recall UISwitch initialization syntax

    In Swift, UI elements like UISwitch are created by calling their initializer with parentheses.
  2. Step 2: Check each option

    Only UISwitch() is the correct initializer. The others use invalid methods or class names.
  3. Final Answer:

    let toggle = UISwitch() -> Option C
  4. Quick Check:

    Initialize UISwitch with UISwitch() [OK]
Hint: Use parentheses to create UISwitch instance [OK]
Common Mistakes:
  • Using incorrect class name like Switch
  • Trying to call .new() or .create() methods
  • Omitting parentheses when creating UISwitch
3. What will be printed when this Swift code runs?
let toggle = UISwitch()
toggle.isOn = true
print(toggle.isOn)
medium
A. Compilation error
B. false
C. nil
D. true

Solution

  1. Step 1: Understand the isOn property

    The isOn property of UISwitch indicates if the switch is on (true) or off (false).
  2. Step 2: Analyze the code

    The code sets toggle.isOn = true and then prints toggle.isOn, so it will print true.
  3. Final Answer:

    true -> Option D
  4. Quick Check:

    Setting isOn true prints true [OK]
Hint: Print isOn after setting it to see true/false [OK]
Common Mistakes:
  • Assuming default is false without setting
  • Confusing isOn with other properties
  • Expecting nil or error from print
4. Identify the error in this Swift code that tries to detect switch changes:
let toggle = UISwitch()
toggle.addTarget(self, action: #selector(switchChanged), for: .valueChanged)

@objc func switchChanged() {
    print("Switch toggled")
}
medium
A. Wrong event type used in addTarget
B. Missing parameter in switchChanged method
C. UISwitch cannot use addTarget
D. Missing UISwitch initialization

Solution

  1. Step 1: Check addTarget usage

    The addTarget method requires the action method to accept the sender parameter.
  2. Step 2: Analyze switchChanged method signature

    The method switchChanged() has no parameters but should accept _ sender: UISwitch.
  3. Final Answer:

    Missing parameter in switchChanged method -> Option B
  4. Quick Check:

    Action method needs sender parameter [OK]
Hint: Action methods need sender parameter for addTarget [OK]
Common Mistakes:
  • Omitting sender parameter in action method
  • Using wrong event type like .touchUpInside
  • Thinking UISwitch can't use addTarget
5. You want to create a toggle switch that updates a label text to "ON" or "OFF" when toggled. Which code snippet correctly implements this behavior?
let toggle = UISwitch()
let label = UILabel()

// Which switchChanged method is correct?
hard
A. @objc func switchChanged(_ sender: UISwitch) { label.text = sender.isOn ? "ON" : "OFF" }
B. @objc func switchChanged() { label.text = toggle.isOn ? "ON" : "OFF" }
C. @objc func switchChanged(_ sender: UISwitch) { if sender.isOn == false { label.text = "ON" } else { label.text = "OFF" } }
D. @objc func switchChanged(_ sender: UISwitch) { label.text = "ON" }

Solution

  1. Step 1: Check method signature and parameter

    The action method must accept the sender UISwitch to get its current state.
  2. Step 2: Verify label text update logic

    @objc func switchChanged(_ sender: UISwitch) { label.text = sender.isOn ? "ON" : "OFF" } uses a ternary operator to set label text to "ON" if switch is on, else "OFF", which is correct.
  3. Step 3: Review other options

    @objc func switchChanged() { label.text = toggle.isOn ? "ON" : "OFF" } lacks sender parameter; @objc func switchChanged(_ sender: UISwitch) { if sender.isOn == false { label.text = "ON" } else { label.text = "OFF" } } reverses ON/OFF logic; @objc func switchChanged(_ sender: UISwitch) { label.text = "ON" } always sets "ON" ignoring switch state.
  4. Final Answer:

    @objc func switchChanged(_ sender: UISwitch) { label.text = sender.isOn ? "ON" : "OFF" } -> Option A
  5. Quick Check:

    Use sender.isOn with ternary to update label [OK]
Hint: Use sender.isOn ? "ON" : "OFF" to update label [OK]
Common Mistakes:
  • Forgetting sender parameter in action method
  • Reversing ON and OFF text logic
  • Ignoring switch state and setting fixed text
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