如何在 ViewController 中调用视图?
Posted
技术标签:
【中文标题】如何在 ViewController 中调用视图?【英文标题】:How to call a view within a ViewController? 【发布时间】:2017-03-17 12:00:41 【问题描述】:我有一个名为IndicatorView
的视图,它是UIView
的子类。对于这个视图,我也有一个 xib
文件。我想在我的 ViewController 中使用UITapGestureRecongnizer
调用这个视图,我已经能够做到这一点。我的问题在于点击时如何调用视图。应该将什么代码添加到我的UIView
文件中,以便我可以从xib
文件中调用它。提前致谢。
【问题讨论】:
【参考方案1】:要以编程方式从 xib 文件中获取对象,您可以使用:[[NSBundle mainBundle] loadNibNamed:@"MyXibName" owner:self options:nil]
。
现在,在UITapGestureRecongnizer
的点击事件中添加以下代码。
ObjC
IndicatorView *objIndicator = [[[NSBundle mainBundle] loadNibNamed:@"IndicatorView" owner:self options:nil] objectAtIndex:0];
[self.view addSubview:objIndicator];
斯威夫特 3
var objIndicator: IndicatorView? = Bundle.main.loadNibNamed("IndicatorView", owner: self, options: nil)[0]
self.view.addSubview(objIndicator)
注意:你可以在self.view的地方传入你要添加的视图
【讨论】:
但是你为什么要创建两个视图,rootView
和 myVIew
?
如果问题不大,能否请您尽快提供?
好的,我也在更新。
应用程序似乎崩溃了,在日志中给出了这个reason: '[<gesturerecognizer.ViewController 0x7fcc6ad088f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key testLabel.'
testLabel 是该视图中的一个标签。我需要在IndicatorView.swift
文件中添加什么吗?
请检查 testLabel 的 IBOutlet。以上是关于如何在 ViewController 中调用视图?的主要内容,如果未能解决你的问题,请参考以下文章
如何从swiftui视图调用uikit viewcontroller方法
调用dismiss方法后如何刷新ViewController
在调用 viewController 之前调用 ViewController 方法的问题