awakeFromNib funktioniert nicht?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • awakeFromNib funktioniert nicht?

    Hallo ich bins wieder... :D

    Da ich ja nun weiß wie ich meinen Button vom Code aus verändere sind ein paar andere Fragen und Probleme aufgetaucht.

    Fragen:

    1. Wozu ist die Methode "viewDidLoad" da? Was macht sie? Ist sie unbedingt notwendig?
    2. Wozu ist die Methode "didReceiveMemoryWarning" da? Was macht sie? Ist sie unbedingt notwendig?
    3. Wozu sind die AppDelegate Dateien" da? Was machen sie? Sind sie unbedingt notwendig?

    Problem:

    Ich möchte nun meinen Button verändern bevor er überhaupt angezeigt wird. So weit ich weiß ist das mit der Methode "awakeFromNib" möglich. Diese funktioniert bei mir allerdings nicht... Vielleicht habe ja einen Fehler gemacht... Wie schreibt man die denn für gewöhnlich?

    Meine Schreibweise:

    Quellcode

    1. - (void) awakeFromNib
    2. {
    3. button.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 7, 0);
    4. }


    Ich bedanke mich schon mal für die vielen und hilfreichen Antworten udn wünsche einen angenehmen Tag.

    Mit freundlichen Grüßen
    GENETIC4
  • Ich habe mich schon eine ganze Menge mit Objective C befasst nur habe ich im OSX Bereich angefangen und kann somit eine ganze Menge aus dem iOS Bereich noch nicht. Und das mit der ViewDidLoad habe ich auch schon probiert... das scheint ja auch nicht zu funktionieren... Deshalb frage ich ja wofür die eigentlich da ist.
  • Wenn Du awakeFromNib in einem Viewcontroller überschreibst, macht das nicht viel Sinn, weil zu diesem Zeitpunkt die Outlets nicht gesetzt sind. Hierfür solltest Du lieber viewDidLoad verwenden. Diese Methode ruft der Viewcontroller auf, nachdem er den View aus dem Storyboard geladen hat.

    Welche Grundlagenliteratur verwendest Du?
    „Meine Komplikation hatte eine Komplikation.“
  • Ich habe "Objective-C 2.0 und Cocoa" von Galileo Computing bis Kapitel 9 gelesen und werde demnächst "Apps programmieren für iPhone und iPad" (auch von Galileo Computing) komplett durcharbeiten... Oder würdest du mir etwas anderes empfehlen?
  • GENETIC4 schrieb:

    Ich habe "Objective-C 2.0 und Cocoa" von Galileo Computing bis Kapitel 9 gelesen und werde demnächst "Apps programmieren für iPhone und iPad" (auch von Galileo Computing) komplett durcharbeiten...

    Ist zwar seit iOS 6 leicht veraltet, sollte dennoch Deine Fragen benatworten: openbook.galileocomputing.de/a…90-4d0d-a541-f88206564d41

    GENETIC4 schrieb:

    Oder würdest du mir etwas anderes empfehlen?

    Wie könnte ich ;)
    „Meine Komplikation hatte eine Komplikation.“
  • Gut das hat schon mal meine Fragen beantwortet aber mein Problem besteht dennoch. Ich habe die "awakeFromNib" zwar entfernt und den Code in die viewDidLoad geschrieben aber es ändert sich trotzdem nichts. ?(
  • GENETIC4 schrieb:

    Ich habe mich schon eine ganze Menge mit Objective C befasst nur habe ich im OSX Bereich angefangen und kann somit eine ganze Menge aus dem iOS Bereich noch nicht.

    Da Du hier mit awakeFromNib hantiert hast. Es gibt einen gravierenden Unterschied zwischen OS X und iOS bezüglich awakeFromNib. Während Du unter OS X einen Aufruf der Implementierung der Superklasse nur machen sollst, wenn Du weißt, dass diese auch eine Implementierung von awakeFromNib hat, sollst Du unter iOS immer [super awakeFromNib] aufrufen.

    Michael
  • Da Du hier mit awakeFromNib hantiert hast. Es gibt einen gravierenden Unterschied zwischen OS X und iOS bezüglich awakeFromNib. Während Du unter OS X einen Aufruf der Implementierung der Superklasse nur machen sollst, wenn Du weißt, dass diese auch eine Implementierung von awakeFromNib hat, sollst Du unter iOS immer [super awakeFromNib] aufrufen.


    Habe ich auch gemacht. Nur leider wie ich gerade sehe vergessen zu erwähnen. SORRY.
  • GENETIC4 schrieb:

    macmoonshine schrieb:

    Hast Du mal geprüft, ob button ungleich nil ist?


    Ich habe das jetzt mal geprüft: Der Button ist NICHT ungleich "nil". Und jetzt?


    du kannst
    - (void) viewWillAppear
    {

    }

    versuchen die würde aber auch aufgerufen werden wenn du in einem UINavigationController auf die View zurückkommst - also eventuell nicht waste willst.

    Ich glaube aber das dein "IBOutlet UIButton *button;" einfach keine connection zu deinem NIB oder Storyboard hat? ;) wenn du das jetzt nicht verstehst -> Doku lesen und dann erst wieder weiterfragen.

    Am besten ein ganz simples GUI Interfacebuilder Beispiel aus einem beliebigen Buch mal durchmachen.