第二个屏幕中的标签栏控制器

时间:2012-12-09 09:21:29

标签: ios xcode controller tabbar

  

可能重复:
  UIAlertView crashes when added to app

我是Objective-C和Xcode的新手。在我的应用程序中,第一个屏幕是一个视图控制器和一个按钮。我想按下那个按钮时显示标签栏,所以标签栏成为第二个屏幕。

这是我正在尝试做的事情:

appdelegate.h

@property (strong, nonatomic) FirstViewController *viewController1;

appdelegate.m

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
     self.viewController1 = [[FirstViewController alloc]
     initWithNibName:@"FirstViewController" bundle:nil];
     self.window.rootViewController = self.viewController1;
     [self.window makeKeyAndVisible];
     return YES; }

在我的FirsViewController.m中,有点击按钮的事件:

 -(IBAction) showMainView:(id) sender{  
     ViewController *mainViewController = [[ViewController alloc] initWithNibName:@"ViewController"
                                                                           bundle:nil];
     [self.view addSubview:mainViewController.view];
     mainViewController = [[ViewController alloc] initWithNibName:@"ViewController"                          
                                                           bundle:nil];
     [self.view addSubview:mainViewController.view];

ViewController是一个带标签栏的xib。

在IB的第二个xib文件中,我为“文件所有者”和AppDelegate - appdelegate类选择了UIApplication类。然后我和app delegate一起加入了文件的所有者。

当我运行我的应用程序并单击第一个视图上的按钮时,应用程序崩溃时出现以下错误: Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ViewController 0x744f0f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key delegate.'

你能告诉我怎样才能克服这个问题?可能在点击按钮后我应该将tabbarController重新分配为rootViewController? 感谢。

1 个答案:

答案 0 :(得分:0)

错误消息看起来像是,您在xib中设置了名为delegate的内容,该内容未正确连接到类文件(ViewController)。检查您的xib是否显示了一些警告消息,并将其删除或修复该问题。