我想從TabBarController加載筆尖。我正在通過分配selectedIndex來完成此操作。通過索引加載的ViewController在TabBarController所在的MainWindow.xib中指定,指定要在每個選項卡欄項中加載的Nib的名稱。加載工作,但如果我在ViewController中創建一個IBOutlet來加載並將其鏈接到任何東西(IBOutlet的對象可以是任何類),那麼它會在我分配selectedIndex的行中崩潰。加載從UITabBarController的筆尖問題
編輯>> 我有應用程序委託,它包含一個UITabBarController鏈接到在MainWindow.xib中創建的UITabBarController對象。
在那個UITabBarController對象中有一些標籤欄項目,每個鏈接到不同的UIViewControllers。這些鏈接通過屬性NIB名稱建立。
我試圖測試第一個項目鏈接到一個空的UIViewController,在這種情況下,我叫TestViewController(TestViewController.h,TestViewController.m和TestViewController.xib創建)。我在第一個選項卡欄Item的NIB Name屬性中編寫了TestViewController。有用。
現在我把一個IBOutlet UILabel放在TestViewController中。我在TestViewController.h中像這樣定義它:
#import <UIKit/UIKit.h>
@interface TestViewController : UIViewController {
UILabel *label;
}
@property (nonatomic, retain) IBOutlet UILabel *label;
@end
然後我在TestViewController.m中綜合標籤對象。我將一個UILabel放在TestViewController.xib中。它仍然有效。
然後我將TestViewController中定義的標籤對象鏈接到我在NIB文件中創建的UILabel。我編譯和測試。它不起作用。它在我將selectedIndex分配給應用程序委託中定義的UITabBarController的部分中崩潰。分配是這樣做的:
self.tabBarController.selectedIndex = 0;
我使用0,因爲我只用第一個選項卡欄項目進行測試。它與SIGABRT信號崩潰。
任何想法,爲什麼會發生這種情況?
謝謝。我認爲這給了我一個提示。 viewControllers數組沒有對象。 UIViewController沒有進入init或loadView。我不這是爲什麼,它只發生在我將IBOutlet鏈接到UILabel時。 – jglievano 2011-03-30 23:04:47