【发布时间】:2014-09-20 06:36:59
【问题描述】:
每当在我的 iOS 应用程序中点击视图控制器的表格视图的单元格时,我想显示我自己的自定义视图。当用户点击自定义视图中的按钮时,我还必须关闭自定义视图。
但是,虽然我能够在用户点击单元格时显示自定义视图,但我无法通过点击自定义视图内的按钮来关闭自定义视图 - 它因错误而崩溃:unrecognized selector sent to instance...。
所以我想知道将按钮放在自定义视图中并将@IBAction 连接到它以将其关闭的正确方法是什么。这是我所做的:
-
在自定义视图的
.xib与其.swift文件之间添加@IBAction连接,并从方法中调用self.removeFromSuperview()- 这会使应用程序崩溃并显示上述错误消息。 将
@IBAction连接添加到我的视图控制器,该控制器被调用以显示自定义视图(即具有UITableView的视图) - 这无法完成,因为当我尝试创建连接时,Xcode 没有t 对控制拖动行为做出反应。
另外,如果我理解正确,我无法将自定义视图的 xib 添加到情节提要文件中,因为自定义视图最初不是创建的;它是通过在运行时点击单元格来实例化的。
那么如何通过点击按钮关闭自定义视图?我应该在哪里编写代码(即在自定义视图的 .swift 文件或原始 VC 的 .swift 文件中)?
更新
当我从自定义视图的 xib 上的按钮添加一个 @IBOutlet 连接到自定义视图的 .swift 文件,并尝试从视图控制器(例如 (println(customView.dismissButton)) 内)println() 时,它也由于错误而崩溃:this class is not key value coding-compliant for the key dismissButton.。所以我最好只添加手势控制器并让窗口上的任何点击做出反应以关闭自定义视图......这很恶心。
更新 2
@Caroline 在评论部分的 zip 文件正是我想要做的,但是我不想在代码中创建和实例化自定义视图,而是想在 xib 上创建 UI,在xib 和我的代码上的组件,最后从代码中解压缩它以使用。
【问题讨论】: