XCode Noob Question: IB linking to Code

Discussion in 'iOS Programming' started by arkmannj, May 16, 2016.

  1. arkmannj macrumors 65816

    arkmannj

    Joined:
    Oct 1, 2003
    Location:
    UT
    #1
    Hello,
    I am just starting to learn Swift and XCode, and I had a quick question.
    I'm just learning about linking items in the Interface Builder (From a storyboard or XIB) to code by Ctrl+Click & dragging from the item in IB into the code, where XCode then places some code beginning with something like: @IBOiutlet, @IBAction.

    My question is this, Is the Click+Drag business necessary? Could I have just typed in those lines of code and had them be connected? Or is Xcode also doing other things in the background that I cannot see to facilitate those connections?

    Thanks!
     
  2. Dookieman macrumors 6502

    Joined:
    Oct 12, 2009
    #2
    Long story short, placing button in IB and doing the right-click/control+click to the source code is just easier.

    You could absolutely create the the button in code and specify where it should be placed and it's action. You also could drag a button in IB, give it a tag, then have your code go through the view hierarchy looking for an object with that tag, but that is just silly. Stick with the control+click
     
  3. PhoneyDeveloper macrumors 68030

    PhoneyDeveloper

    Joined:
    Sep 2, 2008
    #3
    If you type in the IBOutlet declaration into your code you can click+drag to connect the view to the IBOutlet declaration in the code. You can also click to connect outlets directly in IB without having the code visible.

    Click+Drag lets you both create the IBOutlet declaration and connect it. But there are a few ways to connect an IBOutlet if it already exists in your code. Simply typing in the IBOutlet declaration doesn't connect it to anything. You have to connect outlets using IB.
     
  4. moonman239 macrumors 68000

    Joined:
    Mar 27, 2009
    #4
    Creating an IBOutlet for a view is kind of like giving the view a name that you can use to access it in your code.
     

Share This Page