2010-07-26 25 views
0

ici la situation: j'ai un viewcontroller qui appelle dans la fonction "viewDidLoad" une fonction dans le AppDelegateIphone pour terminer cette vue. Le problème est que cette exception est si je fais ceci:App se termine après viewcontroller appelle le délégué pour fermer la vue

splashScreen.view = nil; 



    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "SplashScreenController_iPhone" nib but the view outlet was not set.' 
*** Call stack at first throw: 
(
0 CoreFoundation      0x029dc919 __exceptionPreprocess + 185 
1 libobjc.A.dylib      0x02b2a5de objc_exception_throw + 47 
2 CoreFoundation      0x02995078 +[NSException raise:format:arguments:] + 136 
3 CoreFoundation      0x02994fea +[NSException raise:format:] + 58 
4 UIKit        0x0062a09c -[UIViewController _loadViewFromNibNamed:bundle:] + 295 
5 UIKit        0x00627cd1 -[UIViewController loadView] + 120 
6 UIKit        0x00627bab -[UIViewController view] + 56 
7 regioappv2       0x00003085 -[AppDelegate_iPhone application:didFinishLaunchingWithOptions:] + 97 
8 UIKit        0x00580543 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163 
9 UIKit        0x005829a1 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 346 
10 UIKit        0x0058c452 -[UIApplication handleEvent:withNewEvent:] + 1958 
11 UIKit        0x00585074 -[UIApplication sendEvent:] + 71 
12 UIKit        0x00589ac4 _UIApplicationHandleEvent + 7495 
13 GraphicsServices     0x030bfafa PurpleEventCallback + 1578 
14 CoreFoundation      0x029bddc4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52 
15 CoreFoundation      0x0291e737 __CFRunLoopDoSource1 + 215 
16 CoreFoundation      0x0291b9c3 __CFRunLoopRun + 979 
17 CoreFoundation      0x0291b280 CFRunLoopRunSpecific + 208 
18 CoreFoundation      0x0291b1a1 CFRunLoopRunInMode + 97 
19 UIKit        0x00582226 -[UIApplication _run] + 625 
20 UIKit        0x0058db58 UIApplicationMain + 1160 
21 regioappv2       0x000028b4 main + 102 
22 regioappv2       0x00002845 start + 53 
) 
terminate called after throwing an instance of 'NSException' 
Program received signal: “SIGABRT”. 

si j'appelle la fonction avec le splashScreen.view = nil; dans le appDelegate lui-même, alors tout fonctionne très bien.

S'il vous plaît dites-moi où est ma faute, ou si je devrais poster plus de code.

concernant

Répondre

0
loaded the "SplashScreenController_iPhone" nib but the view outlet was not set.

Avez-vous fait la prise de vue dans le constructeur d'interface? Semble que vous ne l'avez pas configuré correctement. Et aussi à partir de la trace de la pile, il est clair que viewDidLoad n'a pas été appelé, car la vue doit encore être chargée avec succès.

+0

La vue a été créée par programmation dans viewDidLoad du viewController. Les deux cas ne sont donc pas indiqués. – plusgut

+0

alors pourquoi essayer de le charger depuis la plume? Si vous initFromNib, vous devez définir la vue dans nib. La vue cause doit être chargée avant l'appel de viewDidLoad. – taskinoor

+0

Je ne sais pas pourquoi ce message arrive, nulle part j'utilise des nibs. L'initialisation de la vue est la suivante: splashScreen = [[[SplashScreenController_iPhone alloc] init] autorelease]; – plusgut