【发布时间】:2016-12-17 03:00:13
【问题描述】:
所以在我附加的图片中,我展示了我正在为我的 HOME 按钮创建的子类。我有许多带有 HOME 按钮的 VC,我想将它们连接到此类以使它们都向用户发送 HOME
到目前为止,我制作了我的按钮来参加这门课,如图所示。我的问题是我无法在这里连接我的 IBAction 并且不知道为什么....如果有人能告诉我为什么我现在无法将 IBAction 功能连接到按钮,我将不胜感激......
另一个令人困惑的事情是,虽然我没有给这个按钮堆栈视图中的任何其他按钮一个类,但我实际上能够将这个堆栈视图中的任何其他按钮连接到我的 IBAction...发现奇怪。
class HomeButton: UIButton {
@IBAction func showHomeVC(sender: AnyObject) {
var sb: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var vc: UINavigationController = sb.instantiateViewController(withIdentifier: "HomeNC-ID") as! UINavigationController
self.present(vc, animated: false, completion: nil)
}
}
我知道我可以简单地转到每个有 HOME 按钮的 VC,并从每个 VC 中创建一个 IBAction,然后将这段代码粘贴到那里就可以了,但我想以另一种方式做到这一点'不必重复那么多相同的代码......我想知道需要进行哪些更改才能实现这一点。
【问题讨论】:
-
基础知识:self.presentViewController...
-
知道为什么当我拖动 ibaction 时它不允许我链接到突出显示的按钮,但它允许我链接到该堆栈视图中的所有其他按钮?
-
首先,不要用图片来展示你的代码。二、拖动IBAction是什么意思?您是在谈论将代码中的 IBAction 连接到 Interface Builder 中的按钮吗?如果是这样,据我所知,我认为您无法在 Xcode 8 下使用。
-
使用视图控制器而不是按钮设置 IBActions 和 IBOutlets。
-
我认为你应该使用标签栏控制器来显示多个视图控制器,一个标签栏按钮单击它将显示相应的按钮。使用标签栏控制器比使用多个按钮要容易得多。