我是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
?
感谢。
答案 0 :(得分:0)
错误消息看起来像是,您在xib中设置了名为delegate
的内容,该内容未正确连接到类文件(ViewController)。检查您的xib是否显示了一些警告消息,并将其删除或修复该问题。