• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

UINavigationController - Frage

wintersun_666

Tokyo Rose
Registriert
16.04.10
Beiträge
71
Hallo Leute,

ich bin erst am Anfang der iPhone-Programmierung und ich habe dauernd einen Fehler "Request for member 'rootController' in something not a structure or union"! Ich habe in meiner Delegate Klasse ein Outlet-Objekt 'rootController' von der Klasse UINavigationController -> UINavigationController *rootController (danach auch @property als Outlet)! Dann habe ich eine Subclass "RootViewController" erstellt, welche eine normale View ist, habe dort noch ein Objekt von einer andere Klasse erstellt, welche dazu dient in die per Bar-Button zu wechseln! Wenn die Action des Bar-Button ausgeführt wird, wird die Methode "go2settings" aufgerufen, und dort enthalten ist: [self.rootController pushViewController:self.settingsController animated:YES]; d.h. ich rufe die View vom "settingsController"-Objekt! Aber dann kommt der Fehler, nun wenn ich self.rootController durch self.navigationController wechsele funktioniert es, ohne überhaupt eine Instanz "navigationController" zu haben! Alle Imports sind gemacht, und auch Outlets und Delegates sind im IB korrekt verbunden! Warum kommt diese Fehlermeldung? und warum funktioniert es mit dem navigationController-Objekt welches nicht existiert?

vielen dank im voraus, lg wintersun.
 
Vielleicht, weil deine Klasse RootViewController den rootController nicht als Instanzvariable kennt, den hast du ja anderswo - wahrscheinlich in der AppDelegate - definiert. Grundlagen der OOP durchlesen. Kann gerade nicht mehr dazu schreiben, dazu ist mir mein Mac lieber, als ein Handy!

Grz ppocket

Sent from my HTC Desire using Tapatalk
 
Aber woher kennt er die Variable "navigationController" ?? Oder ist das eine Variable der Klasse "UINavigationController" ? Aber müsste die Unterklasse trotzdem nicht die Variablen der Oberklasse kennen?
 
Du mußt in Deinem Settings-Controller die .h-Datei deiner NavigationController-Subclass RootViewController importieren. Also
#import "RootViewController.h".