【问题标题】:2 view controllers, each has its own xib, one of them is a subclass of another?2个视图控制器,每个都有自己的xib,其中一个是另一个的子类?
【发布时间】:2017-06-16 07:36:05
【问题描述】:

我有一个继承自 UIViewController 的自定义类。让我称之为“VC1”。我需要对它进行子类化(使用自己的 xib 创建“VC2”)。然后我尝试创建和使用VC2。问题是使用了 VC2,但使用了 VC1 中的 xib。

如何解决这个问题?可能是因为 VC1 是用 Obj-C 编写的,而 VC2 是用 Swift 编写的?

初始化代码:

let vc = ViewController2(nibName: "ViewController2", bundle: nil)

【问题讨论】:

  • 你需要覆盖选择笔尖的VC1的代码。
  • 试图覆盖,试图创建一个文件并指定一个具体的 xib 文件 - 当 VC2 继承 VC1 时不起作用
  • 您能说明一下您是如何在 VC1 中附加 nib 的吗?
  • 这是一个简单的观点——没有什么特别的东西会影响这种行为
  • 你明确告诉 VC1 在你的代码中选择一个 nib 吗?

标签: ios objective-c swift inheritance uiviewcontroller


【解决方案1】:

这种方式通常应该有效。但我的情况很特殊:

第一个视图控制器包含代码:

NSArray* items = [[NSBundle mainBundle] loadNibNamed:@"ViewController1" owner:self options:nil];
IRSubscriptionInfoView* pageContentView = [items objectAtIndex:1];

所以在 vc2 的代码中,我仍然尝试从 nib 获取 vc1 的一些信息。

可以通过替换 @"ViewController1" -> [self nibName] 并添加对 items.count 的检查来修复

这是我自己问题的答案

【讨论】:

  • 请使用您问题上的编辑链接添加更多信息。 Post Answer 按钮应仅用于问题的完整答案。 - From Review
  • 这是我问题的答案。有什么问题?
  • 如果这是您问题的答案,那么请接受它作为您问题的答案。从您的答案文本中,不清楚这是否真的是答案,但更多的是一个问题:“这种方式应该通常有效。但我的情况很特殊”。
  • 我不能 - “你可以在 2 天内接受你自己的答案”
  • 很公平。但请确保立即清楚这就是答案。写下类似的内容:“这是我自己问题的答案”。我看不出这是一个答案。它看起来更像是对您原始问题的评论或附加信息。
猜你喜欢
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多