2 Stimmen

App mit mehreren Ansichten zeigt leeren Bildschirm im Simulator

Ich entwickle eine einfache App, die zunächst ein Menü anzeigt, und wenn eine Taste gedrückt wird, erscheint ein Spielbildschirm. Ich konnte den Spielbildschirm ohne Probleme entwickeln, aber als ich den Code änderte, um zuerst das Menü anzuzeigen, zeigte der Simulator einen leeren Bildschirm.

Ich habe alle Artikel über die Verknüpfung von Ansichten mit IB gelesen, aber ich werde nicht schlau daraus.

Für jede Hilfe wären wir dankbar.

Dies ist mein Code:

//  Pong_Multiple_ViewAppDelegate.h
//  Pong Multiple View
//
//  Created by Brett on 10-05-19.
//  Copyright __MyCompanyName__ 2010. All rights reserved.
//

#import <UIKit/UIKit.h>

@class MenuViewController;

@interface Pong_Multiple_ViewAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
 MenuViewController *navigationController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet MenuViewController *navigationController;

@end

//
//  Pong_Multiple_ViewAppDelegate.m
//  Pong Multiple View
//
//  Created by Brett on 10-05-19.
//  Copyright __MyCompanyName__ 2010. All rights reserved.
//

#import "Pong_Multiple_ViewAppDelegate.h"
#import "MenuViewController.h"

@implementation Pong_Multiple_ViewAppDelegate

@synthesize window;
@synthesize navigationController;

- (void)application:(UIApplication *)application{    

    // Override point for customization after application launch
 [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];

}

- (void)dealloc {
 [navigationController release];
    [window release];
    [super dealloc];
}

@end

//
//  MenuViewController.h
//  Pong Multiple View
//
//  Created by Brett on 10-05-19.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "GameViewController.h"

@interface MenuViewController : UIViewController {

 GameViewController *gameViewController;
 IBOutlet UIButton *gameButton;

}

@property(nonatomic, retain) GameViewController *gameViewController;
@property(nonatomic, retain) UIButton *gameButton;

-(IBAction)switchPage:(id)sender;

@end

//
//  MenuViewController.m
//  Pong Multiple View
//
//  Created by Brett on 10-05-19.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import "MenuViewController.h"
#import "GameViewController.h"

@implementation MenuViewController

@synthesize gameViewController;
@synthesize gameButton;

-(IBAction)switchPage:(id)sender{
 if (self.gameViewController==nil) {
  GameViewController *gameView = [[GameViewController alloc]initWithNibName:@"GameView" bundle:[NSBundle mainBundle]];
  self.gameViewController= gameView;
  [gameView release];

 }

 [self.navigationController pushViewController:self.gameViewController animated:YES];

}

....

@end 

Mein Code enthält auch Klassen: GameViewController.h, GameViewController.m, und nib-Dateien: MenuView.xib, und GameView.xib

Danke! B

1voto

kennytm Punkte 488916
- (void)application:(UIApplication *)application{    

Der Name der Methode muss sein -applicationDidFinishLaunching: (nicht -application: ), sonst kann UIKit es nicht finden und ignoriert den Initialisierungscode.

0voto

Rengers Punkte 14233

In Ihrem Pong_Multiple_ViewAppDelegate.m Wenn Sie versuchen, eine Ansicht hinzuzufügen, indem Sie

[window addSubview:[navigationController view]];

Sind Sie sicher, dass navigationController irgendwo instanziiert wird? Entweder im Code oder mit einer Nib?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X