2012-08-10 237 views
-1

大家好我有一個問題,顯示從主文件xib文件不知道爲什麼這是發生在一些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 [email protected]"3"){ 
    Results3 *myView3 = [[Results3 alloc]initWithNibName:@"Results3" bundle:nil]; 
    [self.view addSubview:myView3.view]; 
}else if(segment [email protected]"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

xib'文件的名稱是什麼?什麼樣的對象是_Results_?有'view'連接到每個視圖控制器中的'view'屬性?很多很多事情都不清楚,以找出墜機的原因。 – holex 2012-08-10 17:42:42

+1

在這種情況下它可能沒有幫助,但使用字符串比較的'=='本質上是錯誤的,除非您對對象的地址感興趣。切換到'isEqualToString:'。 – 2012-08-10 17:47:24

+0

不知道如何連接視圖?但第一個工作,他們都是一樣的,所以我認爲他們都應該工作,當我走了扔代碼,它確實看到它應該加載它的xib只是不加載。 – Tim 2012-08-10 17:54:21

回答

0

添,這裏是從Interface Builder中的圖片,也許它可以幫助你:

enter image description here

+0

那就是謝謝你 – Tim 2012-08-10 18:09:05

+0

歡迎你!週末愉快,不要太努力。 :) – holex 2012-08-10 18:09:51

0

當應用程序將您帶到main.m中的那一行時,您需要查看控制檯輸出。對我來說,我總是犯一個錯誤,最常見的錯誤是1)文件不存在(Results1.xib)或2)我忘了設置視圖插座。正如我所提到的,控制檯輸出中的異常細節會幫助你。

0

請記住,有時加載設備上的觀點碰撞,但沒有模擬器。在這種情況下,檢查以確保當您撥打:

initWithNibName:@"YourNibName"; 

你的筆尖名字符串的外殼是完全一樣的筆尖文件。模擬器忽略情況,但設備需要精確匹配(非常令人不快)