title: iOS SDK: Difference between UIButton setTitleForState and UIButton titleLabel.text
body: <p>I have this issue with a custom UIView where I have a UIButton subview, I want to set the button's text on initialization based on some condition like this:</p>
  
  <pre><code>- (void)awakeFromNib {
      [super awakeFromNib];
  //check for some conditions
  self.testButton.titleLabel.text=@"Some Title";
  }
  </code></pre>
  
  <p>Nothing happens and the button's text is the same as defined in the nib file, however if I change the implementation to:</p>
  
  <pre><code>- (void)awakeFromNib {
      [super awakeFromNib];
  //check for some conditions
      [self.testButton setTitle:@"Some Title" forState:UIControlStateNormal];
  }
  </code></pre>
  
  <p>It works as expected.</p>
  
  <p>Can somebody please explain to me the difference between the two approaches? and when to use each?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>the suggested answer doesn't explain my situation, I tested changing the button's text from another button's action like this:</p>
  
  <pre><code>- (IBAction)otherButtonClicked:(id)sender {
  self.testButton.titleLabel.text=@"Some Title";
  }
  </code></pre>
  
  <p>and the button's text changed. I just want to understand that behaviour.</p>