开发者

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"];

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜