Ich habe dieses Problem mit einem benutzerdefinierten UIView, wo ich eine UIButton subview haben, möchte ich der Schaltfläche Text auf Initialisierung setzen, basierend auf einem gewissen Zustand wie folgt aus:iOS SDK: Unterschied zwischen UIButton setTitleForState und UIButton titleLabel.text
- (void)awakeFromNib {
[super awakeFromNib];
//check for some conditions
[email protected]"Some Title";
}
Es geschieht nichts, und die Text der Schaltfläche ist das gleiche wie in der nib-Datei definiert ist, aber wenn ich die Umsetzung zu ändern:
- (void)awakeFromNib {
[super awakeFromNib];
//check for some conditions
[self.testButton setTitle:@"Some Title" forState:UIControlStateNormal];
}
Es funktioniert wie erwartet.
Kann mir bitte jemand den Unterschied zwischen den beiden Ansätzen erklären? und wann man jedes benutzt?
EDIT:
die vorgeschlagene Antwort meine Situation nicht erklären, testete ich der Schaltfläche Text aus einer anderen Aktion der Schaltfläche Ändern wie folgt aus:
- (IBAction)otherButtonClicked:(id)sender {
[email protected]"Some Title";
}
und den Text der Schaltfläche geändert. Ich möchte nur dieses Verhalten verstehen.
Mögliche Duplikate von [Warum funktioniert nicht ändern UIButton Text über Punktsyntax?] (Http: // stackoverflow.com/questions/7000796/why-does-not-work-changing-uibutton-text-via-dot-syntax) – SHN