0

首先,我是初学者,所以我的概念可能有误。

这是我在 AppDelegate.m 中的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIViewController *viewController = [[UIViewController alloc] initWithNibName:@"FirstView" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController: viewController];

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

这个想法是以编程方式添加 UINavigationController,然后为视图使用 .xib(“FirstView”参数)。我对以编程方式创建视图也没有问题,但对于更简单的界面,我认为也可以使用 IB。

但是,当我运行代码时,出现此错误:

2013-07-11 21:20:42.644 new-book-proto-01[64308:11303] *** Terminating app due
to uncaught exception 'NSInternalInconsistencyException', reason: 
'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "FirstView" nib
but the view outlet was not set.' 

我应该怎么办?有什么遗漏吗?

另外,这样的事情在 iOS 开发中很常见吗?这是不好的做法吗?有一个更好的方法吗?

4

1 回答 1

2

这就是所说的原因:“原因:'-[UIViewController _loadViewFromNibNamed:bundle:] 加载了“FirstView”笔尖,但未设置视图出口。' "

这意味着您尝试访问或获取控制器类中没有 IBOutlet 的某些视图(UI 元素)或根本没有视图的值

您应该为您希望在控制器中“看到”的每个视图(每个 UI 元素都是视图)创建 IBOutlets(属性)

于 2013-07-11T15:38:22.963 回答