uitabbarcontroller在发布时崩溃

时间:2011-07-20 15:05:07

标签: iphone objective-c xcode uinavigationcontroller uitabbarcontroller

我有一个iphone应用程序,其根视图带有一个按钮,可以通向标签栏视图。当您在根视图中单击UI按钮时,它会触发执行下面代码的IBAction方法。从某种原因,它崩溃到最后。有任何想法吗?很乐意得到任何帮助......谢谢!!

rootview.h

@interface RootView : UIViewController

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) UITabBarController *tabBarController;

@end

rootview.m

-(IBAction)GoToTabBarView:(id)sender {

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIViewController *viewController1 = [[FirstView alloc] initWithNibName:@"FirstView" bundle:nil];
UIViewController *viewController2 = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];


 }

应用程序崩溃了:

self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];

我做错了什么?谢谢!

CRASH LOG:

2011-07-20 11:45:37.359 MyTabProject[17929:207] <FirstView: 0x6836070> <SecondView: 0x683c770>
2011-07-20 11:45:37.410 MyTabProject[17929:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "FirstView" nib but the view outlet was not set.'
*** First throw call stack:
(0xf8c600 0x112452e 0xf31f59 0xf31ec9 0xdbe80 0xdc35d 0xdc57f 0xf6ec5 0xf6d13 0xf5438 0xf5264 0xf4f11 0xf42c6 0x4c93 0xf8dd78 0x1acc5 0x1ac5a 0xbfbd4 0xc009d 0xbee8c 0x3ff13 0x4022d 0x26990 0x1a1a7 0x136b886 0xf5bd11 0xebdc9b 0xebc4b1 0xebb93c 0xebb868 0x1369fef 0x136a0b4 0x180c4 0x2a99 0x2a05)
terminate called throwing an exception(gdb) 

1 个答案:

答案 0 :(得分:1)

没有任何错误信息很难说。但你试过吗

NSMutableArray *listOfViewControllers = [[NSMutableArray alloc] init];
UIViewController *vc;

vc = [[FirstView alloc] initWithNibName:@"FirstView" bundle:nil];
[listOfViewControllers addObject:vc];
[vc release];
vc = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
[listOfViewControllers addObject:vc];
[vc release];

[self.tabBarController.viewControllers setViewControllers:listOfViewControllers]; 

另外,你确定你的笔尖存在吗?你应该使用捆绑包:

[[FirstView alloc] initWithNibName:@"FirstView" bundle:NSBundle.mainBundle];