【问题标题】:Question about initWithNibName关于 initWithNibName 的问题
【发布时间】:2011-02-02 19:24:46
【问题描述】:

我用代码和大部分 GUI 制作我的所有控制器。我用 IB 制作的一些 GUI。然后我将文件的所有者设置为视图控制器,并将文件所有者的连接拖到视图中。但是 initWithNibName 让我很困惑......

我重写了指定的初始化器

- (id)init {
    [super initWithNibName:nil bundle:nil];

    return self;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    return [self init];
}

为什么我不需要在 init-initializer 中设置 viewController 应该使用哪个 nib?因为它没有。我想我必须使用 [super initWithNibName:@"SomeNib​​" bundle:nil];

在初始化初始化器中

【问题讨论】:

  • 那么,问题是什么?我认为您需要重新组织您的信息。
  • 显然不是,因为有两个人已经理解了我的问题并很好地回答了它。

标签: iphone


【解决方案1】:

来自文档:如果您为 nibName 参数指定 nil,则必须覆盖 loadView 方法并在那里创建视图,或者您必须在包中提供名称(不带 .nib 扩展名)与名称匹配的 nib 文件你的视图控制器类。 (在后一种情况下,类名将成为存储在 nibName 属性中的名称。)如果您不执行这些操作,视图控制器将无法加载其视图。

【讨论】:

    【解决方案2】:

    只有当您的 nib 名称与您的控制器类名称相同时,它才有效。在这种情况下,Apple 会发挥一些作用。指定 nib 名称通常是一种很好的形式。

    【讨论】:

    • 啊,是不是因为这个……那才有意义。我不明白魔法从何而来。
    猜你喜欢
    • 2011-12-13
    • 2011-10-15
    • 2021-11-29
    • 2011-09-22
    • 2018-05-23
    • 2011-11-16
    • 2021-03-27
    • 2017-01-27
    • 2011-10-31
    相关资源
    最近更新 更多