Iphone 从UITabBarController加载Nib时出现问题

Iphone 从UITabBarController加载Nib时出现问题,iphone,uiviewcontroller,uitabbarcontroller,nib,Iphone,Uiviewcontroller,Uitabbarcontroller,Nib,我正在尝试从Tabbar控制器加载Nib。我通过分配selectedIndex来实现这一点。按索引加载的ViewController在TabBarController所在的MainWindow.xib中显示,指定要加载到每个选项卡栏项中的Nib的名称。加载工作正常,但如果我在ViewController中创建一个要加载的IBOutlet并将其链接到任何对象(IBOutlet的对象可以是任何类),那么它会在我指定selectedIndex的行中崩溃 编辑>> 我有一个应用程序委托,它包含一个链接到

我正在尝试从Tabbar控制器加载Nib。我通过分配selectedIndex来实现这一点。按索引加载的ViewController在TabBarController所在的MainWindow.xib中显示,指定要加载到每个选项卡栏项中的Nib的名称。加载工作正常,但如果我在ViewController中创建一个要加载的IBOutlet并将其链接到任何对象(IBOutlet的对象可以是任何类),那么它会在我指定selectedIndex的行中崩溃

编辑>> 我有一个应用程序委托,它包含一个链接到MainWindow.xib中创建的UITabBarController对象的UITabBarController

在UITabBarController对象中,有一些选项卡栏项目,每个项目链接到不同的UIViewController。这些链接是通过属性NIB名称建立的

我正在尝试测试将其链接到空UIViewController的第一项,在本例中,我将其称为TestViewController(创建TestViewController.h、TestViewController.m和TestViewController.xib)。我在第一个选项卡栏项的NIB Name属性中编写了TestViewController。它起作用了

现在,我在TestViewController中放置了一个IBMOutlet标签。我在TestViewController中这样定义它。h:

#import <UIKit/UIKit.h>


@interface TestViewController : UIViewController {
    UILabel *label;
}

@property (nonatomic, retain) IBOutlet UILabel *label;

@end
我使用0,因为我只使用第一个选项卡栏项进行测试。它与SIGABRT信号一起崩溃


你知道为什么会发生这种情况吗?

编辑后,你的问题得到了显著改善。根据你告诉我们的,很难说清楚为什么会发生坠机,但我可以为你指出正确的方向

你已经找到了导致坠机的线路,这是一个好的开始。在该行上放置断点并调试应用程序。当到达断点时,请查看self.tabBarController。是零吗?如果不是,则其ViewController阵列中有多少个对象?如果有一个或多个,请查看TestViewController。在其-loadView方法或UIViewController-loadView上放置断点。即使看不到-[UIViewController loadView]的源代码,也可以看到它的效果:在方法结束时,view控制器的view属性应为非nil


此外,请在发生此崩溃后查看控制台。通常会有一条错误消息告诉您应用程序崩溃的大致原因。

问题已经解决。我忘记将链接到选项卡栏项目的UIViewController更改为TestViewController。

谢谢。我想这给了我一个暗示。ViewController阵列没有对象。UIViewController未进入init或loadView。我不知道这是为什么,它只发生在我将IBOutlet链接到UILabel时。
self.tabBarController.selectedIndex = 0;