UINavigationController error crashing my app
I am trying my first UINavigationController app and it is now crashing. If I comment out the line that starts with navController, I don't crash, but if course the app doesn't work either.
(Note: My environment is IOS 4.2 and Xcode 3.2)
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
WpglViewController *firstViewController = [[WpglViewController alloc] init];
navController = [[UINavigationController alloc] initWithRootViewController:firstViewController];
[firstViewController release];
[window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
Here is the crash information. Can someone point me in the right direction? Thanks for the help.
2011-09-04 07:59:49.309 wpgl[7302:207] -[WpglViewController title]: unrecognized selector sent to instance 0x4b134c0
2011-09-04 07:59:49.313 wpgl[7302:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[WpglViewController title]: unrecognized selector sent to instance 0x4b134c0'
*** Call stack at first throw:
(
0 CoreFoundation 0x00ecdbe9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x00cc25c2 objc_exception_throw + 47
2 CoreFoundation 0x00ecf6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00e3f366 ___forwarding___ + 966
4 CoreFoundation 0x00e3ef22 _CF_forwarding_prep_0 + 50
5 UIKit 0x00375781 -[UINavigationController pushViewController:transition:forceImmediate:] + 743
6 UIKit 0x0036e4a0 -[UINavigationController pushViewController:animated:] + 62
7 UIKit 0x00370d98 -[UINavigationController initWithRootViewController:] + 78
8 wpgl 0x00001df9 -[wpglAppDelegate application:didFinishLaunchingWithOptions:] + 146
9 UIKit 0x002b81fa -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
10 UIKit 0x002ba55e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
11 UIKit 0x002c4db2 -[UIApplication handleEvent:withNewEvent:] + 1533
12 UIKit 0x002bd202 -[UIApplication sendEvent:] + 71
13 UIKit 0x002c2732 _UIApplicationHandleEvent + 7576
14 GraphicsServices 0x016e4a36 PurpleEventCallback + 1550
15 CoreFoundation 0x00eaf064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
16 CoreFoundation 开发者_开发问答 0x00e0f6f7 __CFRunLoopDoSource1 + 215
17 CoreFoundation 0x00e0c983 __CFRunLoopRun + 979
18 CoreFoundation 0x00e0c240 CFRunLoopRunSpecific + 208
19 CoreFoundation 0x00e0c161 CFRunLoopRunInMode + 97
20 UIKit 0x002b9fa8 -[UIApplication _run] + 636
21 UIKit 0x002c642e UIApplicationMain + 1160
22 wpgl 0x00001d44 main + 102
23 wpgl 0x00001cd5 start + 53
)
terminate called after throwing an instance of 'NSException'
In my WpglViewController.h file I have the following declared:
@interface WpglViewController : NSObject <UIApplicationDelegate>
{
UILabel *servingsLabel;
UILabel *quantityLabel;
UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UILabel *servingsLabel;
@property (nonatomic, retain) IBOutlet UILabel *quantityLabel;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) UINavigationController *navigationController;
@end
and in my WpglViewController I have the following declared:
#import "WpglViewController.h"
@implementation WpglViewController
@synthesize servingsLabel;
@synthesize quantityLabel;
@synthesize navigationController;
WpglViewController needs to be a subclass of UIViewController.
The exception says that WpglViewController doesn't respond to the title method which it expects in a UIViewController.
2011-09-04 07:59:49.309 wpgl[7302:207] -[WpglViewController title]: unrecognized selector sent to instance 0x4b134c0
This message says everything: Your WpglViewController does not implement the method "title", maybe you forgot to @synthesize the property in your .m file?
Check [WpglViewController title] apparently the problem is here, maybe you are calling this method inside the init of the same class.
Make sure your WpglViewController is inherited from UIViewController.
either there is no such class as WpglViewController or you havent imported it OR MOST LIKELY you didnt initiliaze it with a nib name. WpglViewController is a class, you have to assign a nib inside initiliazation within another class WpglViewController *firstViewController = [[WpglViewController alloc] initWithNibName:@"the WpglViewController nib name which is probably WpglViewController unless you changed it do not put eh .xib extension"];
加载中,请稍侯......
精彩评论