Frage

Es scheint, wie alle der Cocoa Touch Vorlagen eingestellt werden, um eine Feder zu laden.

Wenn ich ein neues Projekt starten will, die einen View-Controller zu verwenden, gehen, und laden Sie seine Ansicht (Hierarchie) programmatisch, nicht von einer Feder / xib, was sind die Schritte, um die Einrichtung oder eine Vorlage anpassen.

ich aber alles, was ich tun musste, war -loadView zu implementieren, aber ich habe Probleme jedes Mal, wenn ich versuche, dies zu tun.

War es hilfreich?

Lösung

Es ist relativ einfach vollständig programmatische Benutzeroberfläche Generation zu tun. Zuerst müssen Sie main.m bearbeiten etwa wie folgt aussehen:

int main(int argc, char *argv[]) 
{
    NSAutoreleasePool *pool = [NSAutoreleasePool new];  
    UIApplicationMain(argc, argv, nil, @"MyAppDelegate");
    [pool release];
    return 0;   
}

wo MyAppDelegate ist der Name Ihrer Anwendung delegiert Klasse. Dies bedeutet, dass eine Instanz von MyAppDelegate wird beim Start erstellt werden, etwas, das normalerweise durch die Haupt-Nib-Datei für die Anwendung gehandhabt wird.

Innerhalb MyAppDelegate, implementieren Ihr applicationDidFinishLaunching: Verfahren ähnlich den folgenden:

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{    
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    if (!window) 
    {
        [self release];
        return;
    }
    window.backgroundColor = [UIColor whiteColor];

    rootController = [[MyRootViewController alloc] init];

    [window addSubview:rootController.view];
    [window makeKeyAndVisible];
    [window layoutSubviews];    
}

wo MyRootViewController sind die View-Controller für die primäre Ansicht in dem Fenster. Dies sollte das Hauptfenster, initialisieren und die von MyRootViewController ihm verwalteten Ansicht hinzufügen. rootController wird als Instanzvariable innerhalb der Delegierten gehalten, für den späteren Gebrauch auf.

Dies sollte können Sie programmatisch Benutzeroberfläche durch MyRootViewController erzeugen.

Andere Tipps

UIViews selbst haben keine Hierarchie, tun UINavigationControllers. So init einer von denen, und ein UIViewController Pop auf sie Stapel ist. Dies sollte es tun, in der einfachsten Art und Weise möglich, ohne XIB-Dateien überhaupt. Sie sollten darauf aufbauen können.

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
   UINavigationController *navController = [[UINavigationController alloc] init];

   UIViewController *viewController = [[UIViewController alloc] init];

   // set the properties of viewController here, to make it look like you want

   [navController pushViewController:viewController animated:NO];

   [window addSubview:navController.view];

   // Don't forget memory management
   [navController release];
   [viewController release];

   [window makeKeyAndVisible];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top