大家好,我在显示主文件中的xib文件时遇到问题,不知道为什么会发生这种情况,而不是其他xib文件。
if(segment == @"1"){
Results1 *myView1 = [[Results1 alloc]initWithNibName:@"Results1" bundle:nil];
[self.view addSubview:myView1.view];
}else if(segment == @"2"){
Results2 *myView2 = [[Results2 alloc]initWithNibName:@"Results2" bundle:nil];
[self.view addSubview:myView2.view];
}else if(segment ==@"3"){
Results3 *myView3 = [[Results3 alloc]initWithNibName:@"Results3" bundle:nil];
[self.view addSubview:myView3.view];
}else if(segment ==@"4"){
Results4 *myView4 = [[Results4 alloc]initWithNibName:@"Results4" bundle:nil];
[self.view addSubview:myView4.view];
}
我的代码是第一个xib文件打开但其余的我不知道为什么,我添加了.h文件:
#import "Results1.h"
#import "Results2.h"
#import "Results3.h"
#import "Results4.h"
在调试时,应用程序会在此行结束:
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([TestTypingToolAppDelegate class]));
}
然后它崩溃了,任何人都有任何想法?
答案 0 :(得分:0)
当应用程序将您带到main.m
中的那一行时,您需要查看控制台输出。对我而言,我最常犯的错误是1)文件不存在(Results1.xib
)或2)我忘了设置视图插座。正如我所提到的,控制台输出中的异常细节将对您有所帮助。
答案 1 :(得分:0)
答案 2 :(得分:0)
请记住,有时加载视图会在设备上崩溃,但模拟器不会崩溃。在这种情况下,请检查以确保在您致电时:
initWithNibName:@"YourNibName";
你的nib名称字符串的大小写与nib文件完全相同。模拟器忽略了案例,但设备需要完全匹配(非常恼人)