Instanz eines Views rausfinden

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

  • Wenn du weißt, genau welches ViewController-Objekt du gerade willst (es gibt wohl wenige fälle in denen man das nicht weiß), dann mach Folgendes:
    Mach alle viewController, die es in deiner App so gitb zu einer property des root ViewControllers (der Controller, desr zuerst aufgerufen wird). Den root ViewController erreichst du innerhalb des Delegate mit:

    Quellcode

    1. self.viewController;


    Dann kannst du ja schreiben:

    Quellcode

    1. UIViewController* beliebigerViewController = self.viewController.beliebigerViewController;
  • Wenn du ein normales View-based template ganz am Anfang bei der Erstellung deines Projektes gewählt hast (und du einfach nur den ViewController verwendest, der schon im Projektordner lag), dann ist es einfach:

    Quellcode

    1. [self.viewController changeText];


    Ich vermute aber, dass du ein anderes Template genommen hast und somit musst du uns erstmal ein paar mehr informationen geben, bevor wir genauer werden können^^.
    Also: Wie ist die App aufgebaut? hast du ne Tapbar oder einen navigationController?
  • Aus dem Kopf (weil im Büro und nicht vorm Mac, deswegen auch nicht in Code-Tags):

    Methode im FirstViewController:

    -(void) aendereBild: (NSData*)bildngage {
    UIImage *uiimageAusData = [UIImage imageWithData: bildngage];
    drawImage.image = uiimageAusData;




    }

    Aufruf aus dem Appdelegate:

    FirstViewController *theInstance = [[FirstViewController alloc] init];
    [theInstance aendereBild: bildngage];

    Hilft das?
  • Mach erstmal einen NSLog() in den Anfang der Methode, man kann sich ja nie sicher sein, ob nicht ein Bug in der Methode ist (und du dann gar nicht merkst, dass die Methode tatsächlich ausgeführt wurde, weil sie nicht das durchfürht, was sie eigentlich sollte). Dann Sag uns doch einmal welches Template du genommen hast. Auch für welche iOS Version du da programmierst ist wichtig (in 4.x gibt es eine kleine Änderung gegenüber 3.2).
  • Quellcode

    1. [tabBarController.selectedViewController changeText];


    Du kannst einfach mal z.b. erst nur "tabBarController." eingeben und dann die esc Taste drücken, um zu sehen, welche Properties es da so gibt.

    NSLog geht nicht. Ich sag ja, das Dingen wird nicht angesprochen

    Erhältst du denn irgendwelche Fehlermeldungen?

    ich vermute, dass irgendwo instantiiert wird.

    Höh? Instanziieren (ich kannte es bisher nur mit einem "i" in der Mitte) bedeutet bei objektorientierten Programmiersprachen eigentlich immer, dass du ein Objekt erzeugst.
    Die Aussagen "etwas instanziieren" und "die +alloc Methode einer Klasse ausführen" sind in ObjC quasi synonym.
  • Puuuh.
    Du erinnerst mich an mich selbst vor einem 3/4 Jahr xD

    Anscheinend möchtest du Objective-C ernsthaft lernen. Ich kann dir nur empehlen: kaufe dir Bücher. Ja, es sollte Geld kosten.
    Mach nicht den Fehler und versuche etliche Monate mit Internettutorials auszukommen. Wenn du keine Vorkenntnisse hast, können die dir nicht sehr viel weiter helfen.
    Kauf dir mindestens ein richtiges Buch, nen richtigen Schinken mit mindestens 500 Seiten.
    Falls du schon so ein Buch hast, dann hast du dich ja schon richtig entschieden^^.

    Und zu deiner Frage:
    Bei den anfänglichen Spielereien, die man so mit dem iPhone macht, braucht man nur sehr selten üherhaupt irgendwas an der AppDelegate zu verändern.
  • Empfehlungen? O´Reilly hab ich. Da wird es eigentlich so beschrieben.

    Akut wäre trotzdem die Frage, wie ich das Bild ändere... Ich kann ja auch z.B. IBOutlets direkt im Delegate definieren, und dort die Aktionen durchführen, dann klappt das auch, scheint mir aber latent der falsche Weg zu sein.