2个视图控制器,每个都有自己的xib,其中一个是另一个的子类?
Posted
技术标签:
【中文标题】2个视图控制器,每个都有自己的xib,其中一个是另一个的子类?【英文标题】:2 view controllers, each has its own xib, one of them is a subclass of another? 【发布时间】: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 吗? 【参考方案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 天内接受你自己的答案” 很公平。但请确保立即清楚这就是答案。写下类似的内容:“这是我自己问题的答案”。我看不出这是一个答案。它看起来更像是对您原始问题的评论或附加信息。以上是关于2个视图控制器,每个都有自己的xib,其中一个是另一个的子类?的主要内容,如果未能解决你的问题,请参考以下文章